概要
この記事では、iPhoneやiPadの実機端末からクラッシュログファイル(xxx.ips
)を取得し、それをdSYMファイルで復号した中身の見方について記載しています。
なお、実機端末からクラッシュログを取得する方法についてはAdHocアプリのクラッシュログ解析を確認してください。
クラッシュログの見方
基本情報
-
Exception Type
: クラッシュの種別を示す文字列が表示される -
Exception Codes
: クラッシュの種別に応じたコードが表示される -
Exception Note
: クラッシュ種別に関する補足説明の文字列が表示される -
Termination Reason
: クラッシュの原因が表示される -
Termination Description
: クラッシュ原因の詳細情報が表示される
バックトレース
- クラッシュスレッド:
Thread 0 Crashed:
といった様にCrashed
と記載された箇所のスレッドにてクラッシュが発生している - クラッシュクラス: 多くの場合、アプリ名(
face MQR
)などが記載されている箇所がアプリ領域で実行されたコードとなる。その中でも一番上位(実行番号が最も小さい)箇所がクラッシュが発生したクラスとなる。 - クラッシュ行数: 上述の
クラッシュクラス
が記載された行内に「クラスファイル名」と「クラッシュが発生した行数」が記載されている
ドキュメント
- Identifying the Cause of Common Crashes
- Addressing Language Exception Crashes
- Investigating Crashes for Zombie Objects
具体例
Exception Type
-
EXC_BREAKPOINT (SIGTRAP)
: アクセス対象の変数にnilが入っていた場合、もしくは型変換に失敗した場合のクラッシュ
Termination Reason
-
Namespace SPRINGBOARD, Code 0x8badf00d
: 特定の処理に時間がかかっているために、SPRINGBOARDというシステムモジュールがアプリを強制的に停止させた場合のクラッシュ