У меня есть 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, работающем в Windows внутри виртуальной машины, которое подключается к Flex Builder, работающему за пределами VM. Кажется, он соединяется, но я не получаю трассировочные операторы, а точки останова не срабатывают.
- Отправка строк журнала на http-сервер. Это работает, но я подозреваю, что мне не хватает последних n кадров стека перед переполнением / сбоем сервера.
- Подход слепого типа поиска, запрещающий фрагменты кода - это медленно, но, вероятно, будет работать.
Какие еще стратегии я должен попробовать?