2011-05-05 18 views
0

私のアプリでクラッシュしました。それは100%再現率クラッシュではありません。クラッシュログとdSYMから、いくつかのcppファイルの行でクラッシュが発生したポイントを取得できます。しかし、ほとんどの場合、アプリはうまく動作します。だから私はそれが何故クラッシュするのか分からない。アプリケーションがクラッシュしたときなどに、この行のvaribleの値のように、クラッシュする場所のcpp行にもっと多くの情報を得ることができますか?どんな提案も歓迎されます。ありがとう!about .dSYM and GDB

答えて

0

あなたのクラッシュログは、その中のレジスタの状態についての情報を持っている必要があり、それは非常に便利です。ただし、クラッシュレポートだけで実行中のアプリの状態を回復することはできません。

+0

クラッシュログはPCのダンプのように機能しますか?ダンプはブレークポイントのように動作し、プログラムがクラッシュする場所で停止し、コールスタック内のすべての情報を簡単に見ることができます。 – snail

+0

クラッシュログはコアダンプではありません。記憶の状態のいずれも知られていない。あなたができる唯一のことは、デバッガでアプリケーションを実行し、クラッシュログに記載されている行にブレークポイントを設定し、クラッシュ状態を再現しようとするか、クラッシュポイントで状態を検査して、発生する。 – bbum

0

このような散発的なバグは、最も難しいものです。

まずはコードをよく見てみることをお勧めします。例えばこの行にポインタの逆参照がありますか?クラッシュログは、トレッドが実行ループに戻される前または後にエラーが発生したことを示していますか?このクラッシュラインを例外で囲み、キャッチブロックに状態を記録できますか?

クラッシュの原因となるコードを投稿すると役立ちます。