7

クラッシュ レポートをシンボル化すると、行番号がずれていることに気付きました。意図的にクラッシュを引き起こすプロジェクトでこれをテストしました。生成された行番号には、コメント行やコンパイラのプリプロセッサステートメントなど、特定の行が含まれていないようです(何が含まれていて含まれていないのかわかりません)...

シンボリック化されたクラッシュ レポートの「オフ」行番号から、ソース内の実際のコード行に移動する簡単な方法はありますか?

編集: 象徴化されたクラッシュ レポートの行の例:

7 Luisterpaal 0x00005de2 -[SWFMP3 connection:didReceiveData:] (SWFMP3.m:320)

したがって、行番号 320 はほぼ正しいですが、正確ではありません。数行ずれてる…

4

2 に答える 2

8

一言で言えば…いいえ。クラッシュ レポートで次のような行を見ている場合:

0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43

「+43」は行番号ではなく、関数の先頭からのメモリ位置です。あなたが書いたコードはコンパイルされたバイナリには存在しません.

残念ながら、解決策は、クラッシュを経験した人にデバッグ バージョンを提供することです。これをリモート デバッグするか、少なくとも NSLog() ステートメントをスローして追跡し、より小さなメソッドを記述できるようにします。

于 2009-08-17T09:57:42.660 に答える
0

私もこの問題を抱えていましたが、クラッシュしたバイナリにコンパイルされたものよりも新しいバージョンのコードを見ていたためです。ソース履歴をさかのぼって、対応するバージョンのソースを見つけたところ、行番号が完全に一致していました。

于 2015-08-12T23:58:38.490 に答える