CRASH ファイル形式とは?
.crash ファイルは、macOS、iOS、iPadOS、tvOS、または watchOS でアプリケーションやシステムプロセスが予期せず終了したときに自動的に生成される Apple クラッシュレポートです。このレポートは、障害発生時のプロセスの状態を記録し、開発者が根本的なバグを診断するために必要な情報を提供します。
古い .crash ファイル(macOS 11 Big Sur まで)は、プレーンな UTF-8 テキストです。これらは、インシデント識別子(UUID)、ハードウェアモデル、OS バージョン、プロセス名、例外タイプ、および終了理由を記録した構造化されたヘッダーで始まります。ヘッダーの下には、スレッドごとのスタックバックトレース(関数呼び出しアドレスのリスト)があり、その後にクラッシュ時にプロセスにロードされていたすべてのバイナリイメージ(フレームワークおよびライブラリ)のメモリロードアドレスとビルド UUID のテーブルが続きます。
macOS 12 Monterey(2021年)以降、Apple は基盤となるコンテナを JSON オブジェクトである .ips (Incident Progress Stream) 形式に切り替えました。後方互換性のために Finder や Console.app では依然として .crash 拡張子で表示されますが、その内容は cpuType、osVersion、threads、binaryImages などのキーを持つ構造化された JSON になっています。
シンボル化されていないレポートのスタックバックトレースには、生の 16 進数メモリパスが表示されます。これらを実行可能な関数名に変換するには、レポートにリストされている各バイナリに対応する .dSYM デバッグシンボルパッケージが必要です。Xcode Organizer は、正しい .dSYM が利用可能な場合、iOS および tvOS のクラッシュレポートを自動的にシンボル化します。
macOS では、クラッシュレポートはユーザープロセスの場合は ~/Library/Logs/DiagnosticReports/ に、システムプロセスの場合は /Library/Logs/DiagnosticReports/ に保存されます。iOS のクラッシュログは、Xcode Organizer または ~/Library/Logs/CrashReporter/MobileDevice/ ディレクトリ経由で取得されます。
セキュリティと安全性
リスク: LOWクラッシュレポートファイルには実行可能コードは含まれておらず、それ自体にセキュリティ上のリスクはありません。ただし、ユーザー名(ファイルパス内)、デバイスモデル、アプリ名、場合によっては引数文字列やメモリのスニペットなど、プライバシーに関わるデータが含まれる可能性があります。Apple の診断送信プロセスでは、クラッシュレポートを Apple に送信する前にユーザーの同意を求めます。
形式の詳細
概要- Windows エラー報告 / 一般的なクラッシュダンプ参照 - Windows 上の一部のサードパーティアプリ(Unity、Electron など)も、Apple の形式とは異なる .crash 拡張子のプレーンテキストのクラッシュサマリーを保存する場合があります。
CRASH ファイルを開くプログラム
技術的詳細
詳細仕様| レガシー形式 | プレーン UTF-8 テキスト (macOS Big Sur まで、iOS 15 まで) |
| モダン形式 | JSON オブジェクト (互換性のために .crash にリネームされた .ips コンテナ - macOS 12 Monterey 以降) |
| レガシーファイルシグネチャ | ファイル先頭の Incident Identifier: <UUID> ヘッダー |
| モダンファイルシグネチャ | バイトオフセット 0 の { (JSON オブジェクト) |
| 主要なヘッダーフィールド | 例外タイプ/コード、終了理由、OS バージョン、ハードウェアモデル、プロセス名、PID |
| スタックトレース | スレッドごとの呼び出しアドレスのバックトレース(シンボル化された関数名または生の 16 進数) |
| バイナリイメージリスト | クラッシュ時にロードされていたすべてのフレームワークとライブラリのロードアドレスと UUID |
| シンボル化 | 一致する .dSYM デバッグパッケージを使用して、生の 16 進アドレスを関数名に変換 |
| macOS 保存パス | ~/Library/Logs/DiagnosticReports/ (ユーザープロセス) および /Library/Logs/DiagnosticReports/ (システム) |
| iOS 取得方法 | Xcode Organizer (Crashes タブ) または ~/Library/Logs/CrashReporter/MobileDevice/ |
| 対応プラットフォーム | macOS, iOS, iPadOS, tvOS, watchOS |
| 一般的なファイルサイズ | 10 KB - 500 KB |
| リリース日 | Mac OS X 10.0 (2001); iOS crash reports since iPhone OS 2.0 (2008) |
| 最新バージョン | JSON-based format (macOS 12 Monterey+, 2021) |
| 仕様書 | developer.apple.com |
CRASH の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。CRASH ファイルについて最初の質問をしてみましょう。