2009-03-06 4 views
2

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個のスタックフレームしか見ていないようです。

完全なスタックトレースを確認する方法はありますか?代わりに、スタックの深さを制限する方法はありますか?

私はこれをデバッグしようとしましたが、情報がほとんどなく、ツールが不足しています。ここで私が試したことは次のとおりです。

  • 私のコードをデバッガにフックします。これは、VM内のウィンドウでFlash 9.0.28を実行し、VM外で動作するFlex Builderに接続しています。接続するように見えますが、私はトレースステートメントを取得せず、ブレークポイントは起動しません。
  • httpサーバにログ行を送信します。これは動作しますが、オーバーフロー/サーバークラッシュの前に最後のn個のスタックフレームがないと思われます。
  • コードの一部を無効にするブラインドバイナリ検索のアプローチ - これは遅いですが、おそらく動作します。

私が試しているはずの他の戦略はありますか?

+0

新しいバージョンのFlex Builderのデバッガは、Flash Player 9.0.28と完全に互換性がありません。 9.0.115以上が必要だと思います。 – joshtynjala

答えて

2

thisは同じ問題のようですか?申し訳ありませんが、これをさらにデバッグする方法については直接的な答えではありませんが、同様の問題を抱えて解決策を見つけた人へのポインタがあります。

+0

これは私たちの問題になってしまいました、ありがとう!どのようなぎっしりとしたバグ... –

+2

あなたがリンクしているページは、登録壁であることが隠されています。同じ情報が別の場所で利用可能ですか?今は登録サーバーがダウンしていて、ほとんどの開発者のように、私はむしろ私のバグを今すぐ修正しようとしています! – ADB