クラッシュ時にダンプを収集するようにアプリケーションを構成するには、特定の環境変数を設定します。 これは、クラッシュが発生した理由を理解するのに役立ちます。 たとえば、例外がスローされたときにダンプをキャプチャすると、クラッシュ時にアプリの状態を調べて問題を特定するのに役立ちます。
次の表には、クラッシュ時にダンプを収集するために構成できる環境変数が示されています。
| 環境変数 | 説明 | 既定値 |
|---|---|---|
DOTNET_DbgEnableMiniDump |
1 に設定すると、コア ダンプ生成が有効になります。 | 0 |
DOTNET_DbgMiniDumpType |
収集されるダンプの種類。 詳細については、「ミニ ダンプの種類」を参照してください。 | 2 (Heap) |
DOTNET_DbgMiniDumpName |
ダンプの書き込み先ファイルへのパス。 dotnet プロセスを実行しているユーザーに指定のディレクトリに対する書き込み許可が与えられるようにします。 | /tmp/coredump.<pid> |
DOTNET_CreateDumpDiagnostics |
1 に設定すると、ダンプ プロセスの診断ログが有効になります。 | 0 |
DOTNET_EnableCrashReport |
(Windows ではサポートされていません)。) 1 に設定すると、ランタイムによって、クラッシュするアプリケーションのスレッドとスタック フレームに関する情報を含む、JSON 形式のクラッシュ レポートが生成されます。 クラッシュ レポート名は、ダンプ パスまたは名前に .crashreport.json が追加されたものです。 |
|
DOTNET_CreateDumpVerboseDiagnostics |
1 に設定すると、ダンプ プロセスの詳細な診断ログが有効になります。 | 0 |
DOTNET_CreateDumpLogToFile |
診断メッセージの書き込み先となるファイルのパスです。 | 設定を解除すると、診断メッセージはクラッシュしているアプリケーションのコンソールに出力されます。 |
ファイル パス テンプレート
.NET 5 以降では、DOTNET_DbgMiniDumpName に、動的に入力される書式設定テンプレート指定子を含めることもできます。
| 指定子 | [値] |
|---|---|
| %% | 1 つの % 文字 |
| %p | ダンプされたプロセスの PID |
| %e | プロセス実行可能ファイル名 |
| %h | gethostname() から返されるホスト名 |
| %t | ダンプの時刻 (エポックからの秒数で表されます)、1970-01-01 00:00:00 +0000 (UTC) |
ミニ ダンプの種類
次の表は、DOTNET_DbgMiniDumpType に使用できるすべての値を示しています。 たとえば、DOTNET_DbgMiniDumpType を 1 に設定した場合、クラッシュ時に Mini 型ダンプが収集されることを意味します。
| [値] | 名前 | 説明 |
|---|---|---|
| 1 | Mini |
モジュールの一覧、スレッドの一覧、例外情報、すべてのスタックを含む小さいダンプです。 |
| 2 | Heap |
モジュールの一覧、スレッドの一覧、すべてのスタック、例外情報、ハンドル情報、マップされたイメージを除くすべてのメモリを含む、大規模で比較的包括的なダンプです。 |
| 3 | Triage |
Mini と同じですが、パスやパスワードなどの個人ユーザー情報を削除します。 |
| 4 | Full |
モジュール イメージを含むメモリをすべて含む最大のダンプです。 |
単一ファイルおよびネイティブ AOT アプリ モデルによってサポートされているのは完全ダンプのみです。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET