Вопрос

У меня есть SWF-файл, который загружается сторонним SWF-файлом.У меня есть исходный код, и я перекомпилировал свой SWF, но у меня нет кода для стороннего SWF.

Где-то, скорее всего в моем коде, произошло переполнение стека.В отладочном флеш-плеере я получаю красивое всплывающее диалоговое окно с трассировкой стека, когда происходит переполнение:

Error: Error #1023: Stack overflow occurred.
    at Object$/Object::_hasOwnProperty()
    at Object/http://adobe.com/AS3/2006/builtin::hasOwnProperty()
    at Object$/Object::_hasOwnProperty()
    at Object/http://adobe.com/AS3/2006/builtin::hasOwnProperty()
    at Object$/Object::_hasOwnProperty()

Так продолжается на протяжении 64 строк.Однако похоже, что я вижу только последние 64 кадра стека, а не всю трассировку стека.

Есть ли способ увидеть полную трассировку стека?В качестве альтернативы, есть ли способ ограничить глубину стека?

Я потратил целый день, пытаясь отладить это, но у меня очень мало информации и не хватает инструментов.Вот что я пробовал:

  • Подключаю мой код к отладчику.Это флэш-память 9.0.28, работающая в Windows внутри виртуальной машины и подключающаяся к flex builder, работающему вне виртуальной машины.Кажется, соединение установлено, но операторы трассировки не появляются, а точки останова не срабатывают.
  • Отправка строк журнала на http-сервер.Это работает, но я подозреваю, что мне не хватает последних n кадров стека перед переполнением/сбоем сервера.
  • Подход слепого двоичного поиска с отключением частей кода - это медленно, но, вероятно, сработает.

Какие еще стратегии мне следует попробовать?

Это было полезно?

Решение

Делает этот похоже та же проблема?Извините, это не прямой ответ о том, как вы можете продолжить отладку, а скорее указатель на кого-то, у кого была аналогичная проблема и кто нашел решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top