クラッシュのデバッグ
クラッシュ
アプリがクラッシュすると、macOS は ~/Library/Logs/DiagnosticReports
に .ips
ファイルを作成します。これらは、組み込みのコンソールアプリ(cmd-space Console
)の「クラッシュレポート」で確認できます。
Zed のテレメトリを有効にしている場合、これらのファイルはアプリを再起動するとアップロードされます。それらは Datadog に保存され、Slack チャンネル (社内のみ)に保存されます。
これらのクラッシュレポートはクラッシュしたバイナリによって生成され、膨大な情報が含まれています。ただし、次の理由により読み取りが困難です。
- ソースファイルと行番号が含まれていない
- シンボルが難読化されている
- インライン化された関数が削除されている
クラッシュのバックトレースを把握するには、.ips
ファイルをローカルにダウンロードして次のコマンドを実行できます。
./script/symbolicate ~/path/zed-XXX-XXX.ips
これにより、パブリックなデジタルオーシャンバケットから正しいデバッグシンボルがダウンロードされ、symbolicateが実行されます。
出力には、ソースファイルと行番号、およびすべてのインライン化されたフレームのデマングル化されたシンボル情報が含まれています。
パニック
アプリが Rust レベルでパニックを起こした場合、Zed はパニックのテキストとバックトレースの概要を含むファイルを ~/Library/Logs/Zed
に作成します。起動時にテレメトリを有効にしていると、これらのパニックをアップロードして追跡できるようにします。
パニックもクラッシュと見なされるため、ほとんどのパニックではクラッシュレポートとパニックの両方を取得します。