У меня есть 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 кадра стека, а не целую трассировку стека.
Есть ли способ увидеть полную трассировку стека? Как альтернатива, существует ли способ ограничить глубину стека?
Я потратил целый день, пытаясь отладить это, но я работаю с очень маленькой информацией и отсутствием инструментов. Вот что я пробовал:
- Подключить мой код до отладчика. Это находится во Flash 9.0.28, запущенном в окнах внутри виртуальной машины, подключаясь к строителю Flex, работающему вне виртуальной машины. Кажется, он подключается, но я не получаю инструкции трассировки, и точки останова не срабатывают.
- Отправка строк журнала на сервер http. Это работает, но я подозреваю, что я пропустил последние n кадров стека перед сбоем переполнения/сервера.
- Слепой, двоичный тип поиска, отключающий части кода - это медленно, но, вероятно, сработает.
Любые другие стратегии, которые я должен попробовать?
Более поздние версии отладчика Flex Builder еще не полностью совместимы с Flash Player 9.0.28. Я считаю, что вам нужно 9.0.115 или выше. – joshtynjala