我有一個由第三方swf加載的swf。我有源代碼並重新編譯我的swf,但沒有代碼給第三方swf。調試閃存堆棧溢出
某處,可能在我的代碼中,有一個堆棧溢出。在調試flash播放器,我得到一個堆棧跟蹤一個不錯的彈出式對話框時,會發生溢出:
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中,連接到在虛擬機外部運行的Flex構建器。它似乎連接,但我沒有得到跟蹤語句,並且斷點不會觸發。
- 將日誌行發送到http服務器。這是有效的,但我懷疑我在溢出/服務器崩潰之前錯過了最後n個堆棧幀。
- 一種盲,二進制搜索類型的方法禁用部分代碼 - 這很慢,但可能會起作用。
我應該嘗試的其他策略?
更新版本的Flex Builder調試器不再與Flash Player 9.0.28完全兼容。我相信你需要9.0.115或更高。 – joshtynjala 2009-03-06 22:37:37