カテゴリー
C++

アプリケーション クラッシュ時のダンプ自動取得

Windows Vista SP1 以降 アプリケーションがクラッシュしたときのダンプを手動で取得する方法は情報が結構見つかりますが、自動で取得する方法はあまり知られていないようなので紹介します。

下記レジストリにキーと値を追加します。デフォルトでは無効となっています。(=ダンプの自動取得は無効)

また、特定のアプリケーションごとに設定することもできます。ここでは、グローバルな設定のみご紹介します。

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumps

説明 種類 デフォルト値
DumpFolder ダンプファイルを生成するフォルダを指定します。例)c:dump REG_EXPAND_SZ %LOCALAPPDATA%CrashDumps
DumpCount フォルダ内のダンプファイルの最大数。最大数に達すると古いものが新しいものに置換されます。 REG_DWORD 10
DumpType ダンプの種類:

  • 0: カスタム ダンプ
  • 1: ミニ ダンプ
  • 2: 完全ダンプ
REG_DWORD 1
CustomDumpFlags カスタムダンプのオプション。DumpType が 0 の時に使用 REG_DWORD MiniDumpWithDataSegs | MiniDumpWithUnloadedModules | MiniDumpWithProcessThreadData.
(※ここはよくわからないので 0 をセット)

参考:https://msdn.microsoft.com/en-us/library/bb787181.aspx

こちらが私がレジストリエディタでセットした値です。参考までに。。。

ローカルダンプのレジストリ設定
ローカルダンプのレジストリ設定