基本からデバッグまで
基本07 ブルースクリーンの解析
デバイスドライバをはじめ、デバイスにかかわるお困りごとの際はお気軽にお問い合わせください。
1.BSODとは
Blue Screen of Deathの略で、ハードウェアやカーネルドライバなどに重大な問題が発生した際に表示される画面です。データの損失やコンピュータの損傷を防ぐために強制的にシャットダウン、または再起動されます。
BSODが発生するとWindowsは自動でダンプファイルを生成します。
ダンプファイルを解析することで、BSOD発生の原因となるモジュールや関数を特定することができます。
本章では、WinDbgを使用してカーネルメモリダンプを解析します。
2.NotMyFaultのインストール
NotMyFaultはMicrosoftが無償提供しているツールで、意図的にBSOD (ブルースクリーン)を発生させることが出来ます。下記のサイトでダウンロードが可能です。
https://docs.microsoft.com/en-us/sysinternals/downloads/notmyfault
3.High IRQL Fault(Kernel-mode)を選択して仮想マシンをクラッシュさせる
対象のPCでNotMyFaultを起動し、High IRQL Fault(Kernel-mode)を選択し「Crash」ボタンを押下するとBSODが発生します。
ダンプファイルの出力先のパスはデフォルトで"%SystemRoot%\MEMORY.DMP"です。
設定によって任意のパスに変更できます。
4.WinDbgで解析
WinDbgを起動し、生成されたダンプファイルを開きます。
すると、WinDbgのコマンドウインドウにて、以下のように出力されます。
*** Fatal System Error: 0x000000d1 |
エラーの概要が示されており、!analyze -vをクリックすることで、さらに詳細な内容を解析することが出来ます。