2009-08-17 26 views
6

クラッシュレポートを象徴するとき、私は行番号がオフであることに気付きました。私は故意にクラッシュするプロジェクトでこれをテストしました。生成された行番号には特定の行が含まれていないようです。コメントラインやコンパイラプリプロセッサステートメント(それが何を含んでいるのかわからない)...シンボルクラッシュレポート(iPhone/Mac)で正しい行番号を取得するにはどうすればよいですか?

シンボル付きクラッシュレポートの "オフ"行番号から実際のコード行に簡単にアクセスできますか?起源?

編集: symbolicatedクラッシュレポートの行の例:

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

ので、行番号320がなく、正確に、ほとんど正しいです。それは数行離れています...

答えて

6

一言で言えません。あなたがクラッシュレポートでは、このような行を見ている場合:

0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43「43」

は、行番号ではなく、関数の先頭からのメモリ位置。あなたが書いたコードは、コンパイルされたバイナリには存在しません。コンパイラはコードを最適化して(少なくともリリースビルドで)変更します。

残念ながら、クラッシュを経験している人に、リモートデバッグが可能なデバッグバージョンを提供したり、少なくともNSLog()ステートメントを投げ捨てて、それを追跡したり、より小さいメソッドを書き込んだりすることができます。

+2

「小規模な方法を書く」と訳されました:) – rpetrich

+0

は、記号化されたクラッシュログの番号を意味しました。 "320": 7 Luisterpaal 0x00005de2 - [SWFMP3接続:didReceiveData:](SWFMP3.m:320) –

3

このTechnical Noteは私もこの問題を抱えていたが、私は墜落したバイナリにコンパイルされたものよりも、コードの新しいバージョンを見ていたという理由だけで、コード

+0

より正確な行番号を取得することができませんでしたが、これはブックマークするためのキラーリソースです。 – ckhan

0

にレポートを関連付ける方法を示しています。ソース履歴に戻ってソースの対応するバージョンを見つけたら、行番号が正確に一致しました。

関連する問題