#procdumpとは
sysinternalsのツールの一つ。プロセスを監視してダンプファイルを生成できる。
- フルダンプ
- ミニプラスダンプ
- ミニダンプ
- .netFrameworkのミニプラスダンプは取得できない。
#procdumpの実行方法【基本編】
-
myapp.exeを起動しておいて当該プロセスのミニダンプを出力する
procdump myapp.exe
-
myapp.exeを起動しておいて当該プロセスのフルダンプを出力する
procdump -ma myapp.exe
-
myapp.exeを起動しておいて当該プロセスのミニダンプを指定フォルダに出力する
procdump -ma myapp.exe C:\myapp\dmp
-
myapp.exeを起動しておいて当該プロセスを5秒間隔で3回ミニダンプを出力する
procdump -s 5 -n 3 myapp.exe
-
当該プロセスが5秒連続cpu使用率90%を超えたらミニダンプを出力する
procdump -c 90 -s 5 myapp.exe
#procdumpの実行方法【障害対応編】
procmonとprocdumpを合わせて使用する
- procmon側の設定
- procmonで「監視対象プロセスのプロセスID」「procdumpプロセスのプロセスID」を
includeフィルターに設定 - プロファイルイベントを表示設定
- procdump側の設定
-
-e 1 -l -f ""
オプションを使い、ダンプ出力を行わず例外発生報告だけを行う。 - <補足>
-l
はデバック出力時に報告を行うためのパラメータ。
併用することにより、片方だけだと出力できないログがprocmonに一覧表示できるため障害対応時に有効
#dmpファイルの調査方法
WinDbg(Debugging Tools for Windows)を使う
後日勉強してまとめる。