現時点での私の情報は (Win-XP では WER がそのように機能しないため、コンテキストを Windows-7 に保ちましょう)、アプリケーションの完全なメモリ クラッシュ ダンプを取得する方法が 2 つあります。
アプリケーションのローカル フル メモリ ダンプを生成するように WER を設定できます
情報はこちら: http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx
- 追加 (32 ビット アプリ用。SysWow64 ノードは使用しない
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
でください)キー (おそらくアプリ固有のサブキー...LocalDumps\MyApplication.exe
) - 2 に設定
DumpType
します。 - 必要に応じて他の設定を微調整します
注: このアプリケーションはカスタム展開されているため、このレジストリ値を設定しても問題ありません。
これにより、単純なデモ アプリでかなり信頼性の高いクラッシュ ダンプが得られるようです。
または、自分でダンプを作成することもできます - ウォッチドッグ プロセスとすべてを適切に使用します。
私はMiniDumpWriteDump
以前はダンプを書き込んでいましたが、障害のリスクを最小限に抑えるために、ウォッチドッグ プロセスからこれを行います (ここで説明されています)。
質問
それで、どちらがより良いアプローチですか?自分で行う場合、クラッシュ ハンドラーで行うことを慎重に最小限に抑えることを考えると、WER アプローチが信頼できるかどうか、または WER アプローチがインプロセスでさらにいくつかのことを行うかどうか疑問に思っています。不合格。アイデア/経験はありますか?