プロセスのメモリダンプをとる
プロセスがクラッシュしたときのメモリダンプ
プロセスがクラッシュしたときのダンプはユーザモードダンプで取得できる。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
というキーに設定する。
値 | タイプ | デフォルト | 内容 |
---|---|---|---|
DumpFolder | REG_EXPAND_SZ | %LOCALAPPDATA%\CrashDumps | ダンプ保存先 |
DumpCount | REG_DWORD | 10 | ダンプファイルの最大数 |
DumpType | REG_DWORD | 1 | 0:Custom dump, 1:Mini dump, 2:Full dump |
CustomDumpFlags | REG_DWORD | … | カスタムダンプのオプション |
CustomDumpFlagsはデフォルトでMiniDumpWithDataSegs | MiniDumpWithUnloadedModules | MiniDumpWithProcessThreadData
。
これらを設定することによって、ユーザモードダンプファイルを取得できる。
プロセスをクラッシュをテストする
BadAppというソフトでプロセスのクラッシュを再現できる。
実行するとDumpFolderにはBadApp.exe.2112.dmp
というファイル名で生成されていた。
特定プロセスのみクラッシュダンプをとる
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\実行ファイル名.exe
というキーに設定する。
再起動必要?
再起動しなくてもレジストリ設定を行えばすぐ反映される。
クラッシュしないプロセスのダンプをとる
クラッシュしないが意図しない挙動のプロセスのダンプをとりたいこともある。
タスクマネージャーのプロセス一覧から対象プロセスを右クリックするとダンプファイルの作成というメニューがあり、作成できる。
これはC:\Users\<ユーザ名>\AppData\Local\Temp\
に生成される。