Skip to content

MS_KernelDump

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

カーネル・ダンプ

概要

  • ブルースクリーン(STOPエラー)時、以下のダンプが自動的に生成される。
    • [システムのプロパティ]の[起動と回復]設定による。
  • このカーネルダンプは、どちらかと言えばクラッシュ・ダンプに分類される。

詳細

種類

最小メモリ・ダンプ

  • ミニダンプと呼ばれる数十KBの小さいダンプ
  • 例外の発生したコードやスタックの情報が書き込まれるが、メモリの情報は出力されない。
  • また、以下のダンプ(カーネル メモリ ダンプ、完全メモリ ダンプ)でもミニダンプは取得される。

※ 出力先は %SystemRoot%\Minidump\(複数世代が残る)。

カーネル・メモリ・ダンプ

  • カーネルモードのメモリ情報
  • ブルースクリーン(STOPエラー)時は、カーネルの問題を見る場合が多いので、
    殆どの場合は、カーネル メモリ ダンプで事足りる。
  • 一般的に数十〜数百MB程度の容量になる。

完全メモリ・ダンプ

  • 完全なメモリ情報
  • 完全メモリダンプ以外では、ユーザ・プロセス情報が取得できない。
  • 以下の条件を満たしていることが取得のための条件になる。
    • ダンプ出力先のドライブに搭載メモリ以上の空き容量
    • ページング ファイルが十分な大きさであること(システム管理サイズが無難)

※ 出力先は既定で %SystemRoot%\MEMORY.DMP(上書き)。

補足(最新化): Windows 8 以降には 自動メモリ ダンプ(Automatic memory dump)が追加され、既定値になっている。 中身はカーネル メモリ ダンプと同じだが、 OS がページング ファイルのサイズを自動管理する点が異なる。 Windows 10 以降では アクティブ メモリ ダンプ(Active memory dump)もあり、 完全メモリ ダンプから仮想マシンのゲスト メモリ等を除いてサイズを抑えられる (Hyper-V ホストの調査に有用)。

取得

仕組み

  1. 物理メモリの情報が一度、ページングファイルに移動される。
  2. 再起動時、savedump.exe によって、memory.dmp ファイルを作成する。

※ このため、ページング ファイルがシステム ドライブに無い/小さすぎる
ダンプが出力されない。よくある「ダンプが取れない」原因のひとつ。

注意点

  • 物理メモリ上にない仮想アドレスの情報は記録されない事。
  • スワップ ≒ ハードページフォールトが発生しているような環境では
    ユーザモードメモリやカーネルモードメモリ(ページプール)の
    ダンプが上手く取れない可能性がある。

クラッシュ・ダンプ的

STOPエラーが起きれば、カーネル・ダンプが取得される。

意図的

STOPエラーを意図的に起こすことでカーネル・ダンプを取得可能。

StartBlueScreen.exe 0x10 0x1111 0x2222 0x3333 0x4444

OSフリーズの調査でダンプを取りたい場合は、この「意図的に落とす」手段が要る
(フリーズしているだけでは STOP エラーにならず、ダンプが出ないため)。

参照方法

以下は、メモリ ダンプ ファイルを参照する方法である。

WinDbg

WinDbg

基本の流れは、シンボル パスを設定して !analyze -v を実行する。

.symfix
.reload
!analyze -v

Dumpchk

Dumpchk.exe は WinDbg に比べると初歩的な分析しかできない。

  • メモリ ダンプ ファイルが正常に作成されたかどうかの検証に使用できるコマンド ライン ユーティリティ
  • メモリ ダンプ ファイル内でエラーが検出された場合は、Dumpchk により報告される。

BlueScreenView

ミニ・ダンプの一覧ツール、WinDbg に比べると簡単な情報しか取得できない。

参考


Tags: インフラストラクチャ, Windows, 障害対応, デバッグ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally