Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法

Windows 7

Windows7(Windows10は未確認)、Windows Server 2008以降のOSでプロセスがクラッシュした際にクラッシュしたプロセスのダンプファイルを採取することができます。

Windows Error Reportにちょっとしたレジストリ設定を追加するだけです。

Windows XP時代のUser Mode Process Dumper(userdump)と似たような機能を提供してくれます。

以下にWindows Error Reportの追加設定手順を覚書。

Windows Error Reportでクラッシュしたプロセスのダンプを採取するための設定

設定には、Administrator権限でログインする必要があります。

設定手順

最初に設定したいクライアントもしくは、サーバーにログインします。

[Windows]キー + [R]キーを押して[ファイル名を指定して実行]画面を表示し、[名前]ボックスに”regedit”と入力し[OK]をクリックします。

レジストリエディタが起動するので、以下のキーを開きます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

画面左の[Windows Error Reporting] キーを右クリックし、 [新規] > [キー]をクリックします。

“新しいキー #1″という名前で新たにキーが作成されるので名前を”LocalDumps”に変更します。

作成した[LocalDumps]キーを右クリックし、[新規] > [展開可能な文字列値]をクリックします。

「新しい値#1」が作成されるので、値の名前を”DumpFolder”に変更し、ダブルクリックします。

DumpFolderキーの値入力画面が表示されるので、”値”には、プロセスダンプを保存したいフォルダをフルパスで記載し、[OK]をクリックします。(例.c:\temp)

※ここで指定したディレクトリ配下にクラッシュした際にプロセスダンプが出力されます。

同じく[LocalDumps]キーを右クリックし、[新規] > [DWORD(32ビット)値]をクリックします。

「新しい値#1」が作成されるので、値の名前を”DumpCount”に変更し、ダブルクリックします。

DumpCountキーの値入力画面が表示されるので、値にはプロセスダンプの保管回数を指定しますが、とりあえずここでは3(10進数)として[OK]ボタンをクリックします。

※プロセスダンプ保管回数は状況に合わせて任意に決定してください。

同じく、[LocalDumps]キーを右クリックし、[新規] > [DWORD(32ビット)値]をクリックします。

「新しい値#1」が作成されるので、値の名前を”DumpType”に変更し、ダブルクリックします。

DumpTypeキーの値入力画面が表示されるので、値にはプロセスダンプの種類を指定します。

ここでは一番情報量の多いフルダンプを指定するので2(10進数)をしてします。

最終的なレジストリキーの構成は以下のとおりです。

以上で設定は終了です。

プロセスダンプの保存先(DumpFolder)について

プロセスダンプは、場合によってはかなりのファイルサイズとなるので、なるべく空きがあるドライブを指定したほうが良いです。

指定したフォルダが存在しない場合でも自動的にフォルダが作成されるので特にあらかじめ”DumpFolder”で指定したフォルダを作成しておく必要はありません。

プロセスダンプの保管回数(DumpCount)について

保管できるプロセスダンプの回数については任意です。 プロセスのクラッシュなどの障害発生状況、プロセスダンプの保管先の空き容量などを考慮して決定してください。

プロセスダンプの種類(DumpType)について

プロセスダンプの種類に指定できる値と内容について以下に記載しておきます。 特別な理由がない限り、基本的には最も情報量の多い2(フルダンプ)を指定するべきだと思います。

指定できる値とダンプの種類

0:カスタムダンプ

1:ミニダンプ

2:フルダンプ

Windows Error Report設定後の動作確認方法

クラッシュしたプロセスのダンプを採取できるようにWindows Error Reportを設定後、ちゃんと動くが動作テストをしましょう。

テストには、擬似的にプロセスのクラッシュを再現させることができる”BadApp.exe”というアプリケーションを使用します。

※他に同じようなアプリケーションやクラッシュを再現させることができる再現手順などあればどの方法を使っても構いません。

BadApp.exeを使用したクラッシュダンプ取得動作確認

以下に簡単にBadApp.exeを使用したクラッシュダンプ取得の動作確認手順を記載します。

以下のBadApp.exeを配布しているサイトを開きます。

[FREE DOWNLOAD]をクリックしてBadApp.exeをダウンロードします。

ダウンロードされたものは圧縮されているので解凍して、解凍したフォルダ内の”BadApp.exe”をダブルクリックします。

BadApp.exeを起動し、[Bad Application]画面が表示されるので[Crash process]ボタンをクリックします。

「BadApp.exe は動作を停止しました」と表示されるので、[キャンセル]ボタンをクリックします。

さらに「問題が発生したため…」という画面が表示されるので[プログラムの終了]をクリックします。

レジストリの”DumpFolder”に指定したフォルダを開いてクラッシュダンプ(拡張子 dmp)が作成されているか確認します。

上記画面では、”BadApp.exe.11228.dmp”が作成されていることが確認できます。

以上で確認手順は終了です。

特定のアプリケーションが頻繁にクラッシュする際など、クラッシュダンプが取得できるようにしておくとクラッシュダンプを解析してクラッシュの原因を特定できる場合がありますので有効に活用しましょう。