WindDbgを使ったブルースクリーンの原因解析

ブルースクリーンが発生すると、クラッシュダンプが作成されます。クラッシュダンプファイルの場所は「%systemroot%\Minidump」です。通常は C:\windows\Minidump の中にあります。

このクラッシュダンプを解析し、原因を特定するためには、デバックツールが必要です。ツールはMicrosoftからダウンロードしてインストールします。

とても難しそうに聞こえますが、解析はソフトが行ってくれますので、原因のファイルは簡単に特定できます。

 WinDbg – Micorost提供 WDK と WinDbg のダウンロード

WinDbgのインストール

上記のリンクにアクセスし、下図と同じスタンドアロン版をダウンロードし、インストーラーを実行します。

WinDbg_DL

インストールは画面の指示に従えば、問題なく完了するはずですが、デバッグツールだけをインストールしたいので、下図のようにDebugging Tools for Windowsだけを選択し、インストールします。

WinDbg_install

WinDbgの起動

2種類のツールがインストールされますので、OSに合わせて実行してください。

  • Debuggin Tools for Windows(x64)
  • Debuggin Tools for Windows(x86)

シンボル パスの入力

WinDbgを起動後、シンボル パスを入力します。(このステップは毎回行います。)
File > Symbol Path

WinDbg_symbolFilePath

ウィンドウに次のパスを入力します。

srv*c:\cache*http://msdl.microsoft.com/download/symbols;

WinDbg_symbolFilePath2

クラッシュダンプファイルを開く&解析

File>Open Crush Dump を開きファイルを選択します。

クラッシュダンプファイルの場所は「%systemroot%\Minidump」です。通常は C:\windows\Minidump の中にあります。

WinDbg_symbolFilePath3

クラッシュダンプファイルを読み込むと自動で解析が始まります。少し待ちましょう

詳細な解析

Window解析結果の下部にある”Use !analyze -v to get detailed debugging information.”をクリックすると詳細な情報がわかります。下部にサンプルとして実際の解析結果を表示します。

WinDbg_analysis

この情報を元に原因を特定していきます。(解析結果のサンプルを下記に記載します。)

今回はcsrss.exeが怪しそうです。また、DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULTBUGCHECK_STR: 0xF4_58c23c0にも原因解明のヒントがあります。このバグチェックコードを元に、MicrosoftのBug Checksから検索しますが、根本的な解決策にはならないので、Google先生にこのあたりの情報を使い検索して解決策を探るのがベストです。

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 0000000000000003, Process
Arg2: fffffa800521db30, Terminating object
Arg3: fffffa800521de10, Process image file name
Arg4: fffff800031d59b0, Explanatory message (ascii)

Debugging Details:
——————

—– ETW minidump data unavailable—–

KERNEL_LOG_FAILING_PROCESS: <NULL>
PROCESS_OBJECT: fffffa800521db30
IMAGE_NAME: csrss.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 0
MODULE_NAME: csrss
FAULTING_MODULE: 0000000000000000
PROCESS_NAME: csrss.exe
EXCEPTION_CODE: (Win32) 0x58c23c0 (93070272) – <Unable to get error code text>
BUGCHECK_STR: 0xF4_58c23c0
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
CURRENT_IRQL: 0
ANALYSIS_VERSION: 6.3.9600.17298 (debuggers(dbg).141024-1500) amd64fre
STACK_TEXT:
fffff880`02611e48 fffff800`0325ee92 : 00000000`000000f4 00000000`00000003 fffffa80`0521db30 fffffa80`0521de10 : nt!KeBugCheckEx