クラッシュダンプで取得できるもの

Windowsはクラッシュ時にメモリダンプするが、設定によって取得できる領域が異なる。

取得モード 取得できる内容
最小メモリダンプ(256KB) 例外が発生したプロセス情報や呼び出しスタック
カーネルメモリダンプ カーネルモードのメモリ情報
完全メモリダンプ すべて

これに加えて、Windows 10では以下のモードを利用することができる。デフォルトでは自動メモリダンプが選択されている。

取得モード 取得できる内容
自動メモリダンプ カーネルメモリダンプと同じ
アクティブメモリダンプ 完全メモリダンプからトラブルシューティングに関連しないページを除外

レジストリでは\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControlに設定が保存されてている。

設定はシステムの詳細設定起動と回復 -> 設定で確認できる。

WindowsCrushdump width=320

WindowsCrushdump width=320

カーネルメモリダンプに含まれないものは?

カーネルメモリダンプには未割当メモリやユーザモードアプリケーションに割り当てられたメモリは含まない。

ミニダンプに含まれるものは?

含まれているものは以下。

  • Stopメッセージとそのパラメーターとその他のデータ
  • 読み込まれたドライバーの一覧
  • 停止したプロセッサのプロセッサ コンテキスト (PRCB)
  • 停止したプロセスのプロセス情報とカーネル コンテキスト (EPROCESS)
  • 停止したスレッドのプロセス情報とカーネル コンテキスト (ETHREAD)
  • 停止したスレッドのカーネル モード呼び出し履歴

自動メモリダンプとカーネルメモリダンプの違いは?

2つの相違点は、ダンプファイル自体には含まれませんが、システムのページングファイルのサイズはWindowsによって設定されます。

違いはページングファイルのサイズを設定している場合に、自動的にページングファイルのサイズを大きくして取得するという点だ。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\LastCrashTimeにそのイベントが記録され、ページングファイルサイズのサイズ増加は4週間保持される。

現在のページサイズはシステムの詳細設定パフォーマンス -> 設定で確認できる。

WindowsCrushdump width=320

アクティブダンプで除外されるものは?

以下が除外される。役に立たないその他さまざまな種類とは……

  • 空きおよびゼロのリスト
  • ファイルキャッシュ、ゲストVMのページ
  • デバッグ中には役に立たないその他のさまざまな種類のメモリ上のページ