OS

WinDbgを使ってWindowsのコアダンプを解析する方法

WinDbg環境構築

公式のページWinDbg のインストール方法がいくつか公開されていますが、
Windows10 or Windows11 以降であれば、PowerShell でインストールするのが簡単です。

 PowerShell
winget install Microsoft.WinDbg

 

【手順①】DMPファイルを開く

Windows のコアダンプ(メモリダンプ)ファイルは、以下の場所に保存されます。

  • 完全なメモリダンプ(ユーザ空間+カーネル空間)
    ファイル名:MEMORY.DMP
    場所   :C:\Windows
  • カーネル空間のメモリダンプ
    ファイル名:MEMORY.DMP
    場所   :C:\Windows
  • ミニダンプ
    ファイル名:MiniXXXXXX-YY.dmpXXXXXX は日付、YY は連番号)
    場所   :C:\Windows\Minidump

もし、レジストリ「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl」で
保存先を変更している場合は、そちらのパスに読み替えてください。

 

デバッグしたい対象のファイルをクリックするか、WinDbg を起動して対象ファイルを開きます。
以下のような画面が表示されれば、正常に読込完了です。

 

【手順②】シンボルストアパスの設定

次に、デバッグに必要な Windows 関連のシンボルファイルを保存するパスを設定します。
適当な場所にフォルダーを作成してください。本記事では C:\Symbols としています。

 

WinDbg 画面の中段下あたりにあるコマンド入力バーに、以下のように入力して設定します。

 WinDbg
kd> .symfix c:\Symbols

 

.sympath と入力して、以下のように表示されれば設定完了です。

SANACHAN
SANACHAN
必要なシンボルのダウンロードに時間がかかる場合があります。

 

【手順③】解析の実行

基本的な解析は非常に簡単です。
先ほどのコマンド入力バーに以下を入力すれば、基本的な情報が全て出力されます。

 WinDbg
kd> !analyze -v


PC(Program Counter)の amdkmdag+0x2cf5d4 とバックトレースから、

L2.bin というプログラムが、DirectX を使用した割込みハンドラ(dxgkrnl)の中で、
不正メモリアクセス(0x00000000`00000060+8 の Read)を行って Page Fault が起きている

ということが判ります。

Ryzen5 のマシンなので、あまり試験されていないのでしょうか・・・

SANACHAN
SANACHAN
L2.bin は、Lineage2 というゲームのプログラム名です。

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-OS
-, ,