2009-03-06 38 views
2

我有一個由第三方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個堆棧幀。
  • 一種盲,二進制搜索類型的方法禁用部分代碼 - 這很慢,但可能會起作用。

我應該嘗試的其他策略?

+0

更新版本的Flex Builder調試器不再與Flash Player 9.0.28完全兼容。我相信你需要9.0.115或更高。 – joshtynjala 2009-03-06 22:37:37

回答

2

this聽起來像是同樣的問題嗎?對不起,因爲它不是直接回答你如何進一步調試,而是更多的指向有類似問題並找到解決方案的人。

+0

這確實最終成爲我們的問題,謝謝!多麼糟糕的錯誤... – 2009-03-28 18:16:32