トップ回答者
WERのダンプファイル作成について

質問
-
いつもお世話になっております。
まだ、設計段階で検証機もないため、調べた知識だけの質問ですので、いろいろと間違ってると思いますがよろしくお願いいたします。
Windows Server 2012 r2でクラッシュダンプを取得するためにWERを使おうと考えています。
基本的にはローカルにダンプを残さないとのことで、レジストリ修正で「ダンプファイルパス」「ダンプファイル世代」「ダンプファイル種類」を指定できるとわかりました。
ですが、自分が知りたい情報がなかなか見つからず、こちらに質問することになりました。
1.レジストリキーで指定したパスにクラッシュしたイベントごとにフォルダが作られ、その中にダンプファイルが格納される。という認識であってますでしょうか?
2.生成されるファイルが1つではないみたいですが、その生成されるファイルはどのようなものがあるのでしょうか?
その中でクラッシュした内容が入ってるファイルはどのファイルでしょうか?
3.よく「MEMORY.DMP」で作られるメモリダンプとは違うのでしょうか?
よろしくお願いいたします!
回答
-
考えられている設計で取得したいのはユーザーモードのアプリケーション(やサービス)のクラッシュ ダンプなのか、カーネル ダンプなのかどちらでしょう。
WER によるユーザーモード ダンプの作成についての詳細は
に記載があります。これを見る限り
1. はその通りですが、指定したパスはクラッシュしたプロセスの権限で書き込みができる必要があります。ユーザー権限で動作するアップりケーションであればあまり問題になりませんが、サービス アカウントで動作しているプロセスの場合は注意が必要です。
2. については DumpCount で指定した数だけ DumpFolder で指定したフォルダーにダンプ ファイルが保持されます。特にフォルダー分けなどはされないようです(クラッシュした実行ファイル名.そのPID.dmp のようなファイル名になるろうです)。
3. については、WER で作成されるのはユーザーモード ダンプであり、カーネル モードのクラッシュ ダンプとは異なります。
なおカーネル モードのクラッシュ ダンプ ファイルはネットワーク共有上には作成できないはずです。
hebikuzure
- 編集済み Hebikuzure aka Murachi AkiraMVP 2017年1月23日 13:49
- 回答の候補に設定 miyamamMicrosoft employee 2017年1月23日 23:44
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2017年2月1日 2:01
-
1.ローカルにダンプを起こさないというのがサーバーへの転送を意味するかは存じていませんが、以下の記事が見つかります。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb787181(v=vs.85).aspx
https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb513638(v=vs.85).aspx
https://technet.microsoft.com/en-us/library/jj618323(v=ws.11).aspx
3のstopエラーの場合のメモリダンプとは異なり、WERは基本的には問題のあったプロセスに対してダンプが残ります。
リンクにあります通り、プロセスを指定してのダンプも可能です。
設定例、結果については以下をご覧ください。
http://d.hatena.ne.jp/replication/20140427/1398575903
%ProgramData%\Microsoft\Windows\WERと異なり、プロセスごとには分けられないようですね。(dmp or mdmpのみ)
解析方法については以下をご覧ください。
http://d.hatena.ne.jp/replication/20140427/1398605237
https://developer.microsoft.com/ja-jp/windows/hardware/windows-driver-kit
また、Visual Studio or Visual Studio + windbgで解析することも可能です。
ただし、WDKのダウンロードリンクにあるVisual Studio 2015 Communityは企業ユーザの場合は使用するとライセンス違反になるケースがあるので、必要なら正規版を手に入れてください。
Visual Studioをインストールしていない環境で、WDK or windbgのインストールのみで良かったかは自信がりません。
SDK(8.1)のインストールも必要だったかもしれません。
なお、
https://blogs.msdn.microsoft.com/axjapan/2011/12/15/windows-error-reportingaosax32serv-exe/
にある通り、dmp or mdmpをサポートに送付することで解決できるケースもあります。
- 編集済み tmori3y2 2017年1月23日 23:27
- 回答の候補に設定 miyamamMicrosoft employee 2017年1月23日 23:44
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2017年2月1日 2:01
すべての返信
-
考えられている設計で取得したいのはユーザーモードのアプリケーション(やサービス)のクラッシュ ダンプなのか、カーネル ダンプなのかどちらでしょう。
WER によるユーザーモード ダンプの作成についての詳細は
に記載があります。これを見る限り
1. はその通りですが、指定したパスはクラッシュしたプロセスの権限で書き込みができる必要があります。ユーザー権限で動作するアップりケーションであればあまり問題になりませんが、サービス アカウントで動作しているプロセスの場合は注意が必要です。
2. については DumpCount で指定した数だけ DumpFolder で指定したフォルダーにダンプ ファイルが保持されます。特にフォルダー分けなどはされないようです(クラッシュした実行ファイル名.そのPID.dmp のようなファイル名になるろうです)。
3. については、WER で作成されるのはユーザーモード ダンプであり、カーネル モードのクラッシュ ダンプとは異なります。
なおカーネル モードのクラッシュ ダンプ ファイルはネットワーク共有上には作成できないはずです。
hebikuzure
- 編集済み Hebikuzure aka Murachi AkiraMVP 2017年1月23日 13:49
- 回答の候補に設定 miyamamMicrosoft employee 2017年1月23日 23:44
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2017年2月1日 2:01
-
1.ローカルにダンプを起こさないというのがサーバーへの転送を意味するかは存じていませんが、以下の記事が見つかります。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb787181(v=vs.85).aspx
https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb513638(v=vs.85).aspx
https://technet.microsoft.com/en-us/library/jj618323(v=ws.11).aspx
3のstopエラーの場合のメモリダンプとは異なり、WERは基本的には問題のあったプロセスに対してダンプが残ります。
リンクにあります通り、プロセスを指定してのダンプも可能です。
設定例、結果については以下をご覧ください。
http://d.hatena.ne.jp/replication/20140427/1398575903
%ProgramData%\Microsoft\Windows\WERと異なり、プロセスごとには分けられないようですね。(dmp or mdmpのみ)
解析方法については以下をご覧ください。
http://d.hatena.ne.jp/replication/20140427/1398605237
https://developer.microsoft.com/ja-jp/windows/hardware/windows-driver-kit
また、Visual Studio or Visual Studio + windbgで解析することも可能です。
ただし、WDKのダウンロードリンクにあるVisual Studio 2015 Communityは企業ユーザの場合は使用するとライセンス違反になるケースがあるので、必要なら正規版を手に入れてください。
Visual Studioをインストールしていない環境で、WDK or windbgのインストールのみで良かったかは自信がりません。
SDK(8.1)のインストールも必要だったかもしれません。
なお、
https://blogs.msdn.microsoft.com/axjapan/2011/12/15/windows-error-reportingaosax32serv-exe/
にある通り、dmp or mdmpをサポートに送付することで解決できるケースもあります。
- 編集済み tmori3y2 2017年1月23日 23:27
- 回答の候補に設定 miyamamMicrosoft employee 2017年1月23日 23:44
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2017年2月1日 2:01