Windows7でアプリケーションのメモリダンプを取得する方法

Windows Vista以降、ワトソン博士がなくなり、メモリダンプの取得方法が変わった。

任意のタイミングで取得する

タスクマネージャーで、メモリダンプを取得したいプロセスを選択。
右クリックで「ダンプファイルの作成」を選択。
メモリダンプは、C:\Users\ログインユーザー\AppData\Local\Temp フォルダに出力される。
この方法でプログラムクラッシュ時のメモリダンプの取得できるが、クラッシュ時のエラーメッセージボックスを表示させたまま(プロセスが存在している)の状態で作業しなければならない。
この方法で取得するメモリダンプは、FullDump。

プログラムクラッシュ時に自動で取得する

クラッシュ時に自動で取得するにはレジストリをいじる。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps キーに次の値を追加。
キーが無い場合は作成する。
値の名前 種類 データ 備考
DumpFolder 展開可能な文字列値 (REG_EXPAND_SZ) %LOCALAPPDATA%\CrashDumps ダンプの出力先フォルダ
DumpCount DWORD(32ビット)値 (REG_DWORD) 10 保存するダンプの最大数
DumpType DWORD(32ビット)値 (REG_DWORD) 2 ダンプの種類 0:Custom, 1:Mini, 2:Full
CustomDumpFlags DWORD(32ビット)値 (REG_DWORD) 0 カスタムダンプ取得時のオプション

%LOCALAPPDATA% は、C:\Users\ログインユーザー\AppData\Local のこと。
AppDataフォルダは、フォルダーオプションで「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を設定していないと見ることができない。

詳細はMSDNに記載されている
http://msdn.microsoft.com/en-us/library/bb787181.aspx



最終更新:2012年05月09日 14:10