Share via


クラッシュ時にダンプを収集する

クラッシュ時にダンプを収集するようにアプリケーションを構成するには、特定の環境変数を設定します。 これは、クラッシュが発生した理由を理解するのに役立ちます。 たとえば、例外がスローされたときにダンプをキャプチャすると、クラッシュ時にアプリの状態を調べて問題を特定するのに役立ちます。

次の表には、クラッシュ時にダンプを収集するために構成できる環境変数が示されています。

環境変数 説明 既定値
COMPlus_DbgEnableMiniDump または DOTNET_DbgEnableMiniDump 1 に設定すると、コア ダンプ生成が有効になります。 0
COMPlus_DbgMiniDumpType または DOTNET_DbgMiniDumpType 収集されるダンプの種類。 詳細については、「ミニ ダンプの種類」を参照してください。 2 (Heap)
COMPlus_DbgMiniDumpName または DOTNET_DbgMiniDumpName ダンプの書き込み先ファイルへのパス。 dotnet プロセスを実行しているユーザーに指定のディレクトリに対する書き込み許可が与えられるようにします。 /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics または DOTNET_CreateDumpDiagnostics 1 に設定すると、ダンプ プロセスの診断ログが有効になります。 0
COMPlus_EnableCrashReport または DOTNET_EnableCrashReport (.NET 6 以降が必要。Windows ではサポートされていません。)
1 に設定すると、ランタイムによって、クラッシュするアプリケーションのスレッドとスタック フレームに関する情報を含む、JSON 形式のクラッシュ レポートが生成されます。 クラッシュ レポート名は、ダンプ パスまたは名前に .crashreport.json が追加されたものです。
COMPlus_CreateDumpVerboseDiagnostics または DOTNET_CreateDumpVerboseDiagnostics (.NET 7 以降が必要。)
1 に設定すると、ダンプ プロセスの詳細な診断ログが有効になります。
0
COMPlus_CreateDumpLogToFile または DOTNET_CreateDumpLogToFile (.NET 7 以降が必要。)
診断メッセージの書き込み先となるファイルのパスです。
設定を解除すると、診断メッセージはクラッシュしているアプリケーションのコンソールに出力されます。

Note

これらの環境変数を使用している場合、.NET 7 でのプレフィックスの標準は、COMPlus_ ではなく DOTNET_ です。 ただし、プレフィックス COMPlus_ は引き続き機能します。 以前のバージョンの .NET ランタイムを使用している場合は、環境変数に COMPlus_ プレフィックスをまだ使用する必要があります。

ファイル パス テンプレート

.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 モジュール イメージを含むメモリをすべて含む最大のダンプです。