ProcDumpの使い方
ProcDumpは、Sysinternalsユーティリティの一部としてMicrosoftによって無償で提供される、プロセスのダンプファイルを取得するためのコマンドラインツールです。特に、アプリケーションのクラッシュやハングアップ時に詳細な情報を収集するために使用されます。
ProcDumpの入手方法
ProcDumpはSysinternalsの公式ウェブサイトから無償でダウンロードできます。Sysinternals Suiteの一部として提供されており、単一の実行可能ファイルをコピーするだけで動作します。 ProcDumpは、Microsoft StoreやWinGetからもインストールできます。これらの方法では、Windowsのスタートメニューに登録され、アプリ実行エイリアスを通じてコマンドラインからの起動が容易になります。ただし、ProcDumpの便利な機能としてプロセスのアーキテクチャに合わせたダンプを自動的に取得する機能があるのですが、Microsoft StoreやWinGetからインストールした場合はこの機能が動作せず、常にWindowsのアーキテクチャに合わせたダンプが取得されます。ProcDumpを使用する場合は、Sysinternalsのウェブサイトから直接ダウンロードしたほうがよいと思います。
ProcDumpの使用方法
ProcDumpはコマンドラインツールであり、さまざまなオプションを指定して使用します。以下に基本的な使用方法を示します。
procdump [オプション] <プロセスID> <出力ファイル名またはパス名>
主要なオプション
-ma
: 完全なメモリダンプを取得します。-n <数値>
: 指定した数のダンプファイルを取得します。-s <秒数>
: 指定した秒数ごとにダンプを取得します。-e [1]
: 1 を指定していない場合は未処理の例外が発生したときにダンプを取得します。1 を指定した場合は初回例外が発生したときにダンプを取得します。-f <フィルター>:
例外コードやモジュール名などのフィルターを指定します。合致する場合にのみダンプを取得します。-fx <フィルター>
: 例外コードやモジュール名などのフィルターを指定します。合致する場合はダンプを取得しません。-h
: ハングアップしたプロセスのダンプを取得します。-t
: プロセスが終了したときにダンプを取得します。-c
: CPU使用率が指定した値を超えたときにダンプを取得します。-w
: 指定したプロセスが起動するのを待機します。
例
-
System.InvalidOperationExceptionの初回例外が発生したときに10個までダンプを取得する
procdump -ma -e 1 -f "System.InvalidOperationException" -n 10 <プロセスID> <出力ファイル名またはパス名>
-
プロセスのダンプを15秒毎に5個取得する場合
procdump -ma -s 15 -n 5 <プロセスID> <出力ファイル名またはパス名>
-
未処理例外または正常終了した場合にダンプ出力する
procdump -ma -e -t <プロセスID> <出力ファイル名またはパス名>
-
CPU使用率が80%以上が5秒以上続いたら3個までダンプを取得する
procdump -ma -c 80 -s 5 -n 3 <プロセスID> <出力ファイル名またはパス名>
-
.NETアプリケーション内で発生したネイティブコードの初回例外を10個までダンプ取得する
procdump -ma -e 1 -g -n 10 <プロセスID> <出力ファイル名またはパス名>