クラッシュのデバッグ

クラッシュ

アプリがクラッシュすると、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 に作成します。起動時にテレメトリを有効にしていると、これらのパニックをアップロードして追跡できるようにします。

パニックもクラッシュと見なされるため、ほとんどのパニックではクラッシュレポートとパニックの両方を取得します。