メモリダンプのエラーコード確認 (WinDbg によるメモリダンプ解析) |
■ WinDbg の起動
(1) WinDbg を起動しシンボル ファイルを指定する。「シンボル情報」が「c:\websymbols」であるとき、 シンボル ファイル パスは 「SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols」 と指定する。
(2) メモリダンプ(Crash Dump)を開く。完全メモリダンプ、 カーネル メモリダンプ、 最小メモリダンプ のファイルを指定できます。
■ OSによる自動解析
メモリダンプ「MEMORY.DMP」のファイルを指定し実行すると、WinDbgの「Command」画面に次のように表示し、「stop エラーコード」と「OSによる自動解析」 ができる。
●メモリダンプ解析の初期画面の事例
Microsoft (R) Windows Debugger Version 6.7.0005.0
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\メモリダンプ\dump\MEMORY.DMP] ●完全メモリダンプを指定
Kernel Complete Dump File: Full address space is available
Symbol search path is: SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 (Service Pack 2) UP Free x86 compatible●メモリダンプされたOSタイプとサービスパックを確認
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp2_rtm.040803-2158
Kernel base = 0x804d9000 PsLoadedModuleList = 0x8055cb20
Debug session time: Mon Apr 7 09:55:36.492 2010 (GMT+9)●エラーが発生した時間 (メモリダンプ実行時間)
System Uptime: 0 days 0:10:22.074●OS起動からエラー発生までの時間 (稼働時間)
Loading Kernel Symbols
...................................................................................................................................
Loading User Symbols
.........................................................................................................................
Loading unloaded module list
.....................
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.●「!analyze -v」を左クリックするとOS自動解析がスタートする。
●又は「kd>」のコマンドラインに「!analyze -v」「エンタ」と打鍵する。
BugCheck 8E, {c0000005, bf8cec96, b7e82c38, 0} ●「stop エラーコード」
●ブルー画面は「stop 8E, {c0000005, bf8cec96, b7e82c38, 0} 」を示す。 「重要」
Probably caused by : win32k.sys ( win32k!HmgQueryAltLock+11 )
Followup: MachineOwner
---------
●「!analyze -v」でOSが自動解析する。
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
●下記は「OSの自動解析」結果 「重要」
KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: bf8cec96, The address that the exception occurred at
Arg3: b7e82c38, Trap Frame ●トラップ(割込)のスタックポインタの場所
Arg4: 00000000
Debugging Details:
------------------
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"
FAULTING_IP:
win32k!HmgQueryAltLock+11
bf8cec96 8b4004 mov eax,dword ptr [eax+4]
●エラーのためトラップが発生した場所のCPUレジスタとプログラム命令
TRAP_FRAME: b7e82c38 -- (.trap 0xffffffffb7e82c38)
ErrCode = 00000000
eax=00000000 ebx=0000ffff ecx=000bdcb0 edx=00000000 esi=e4efd000 edi=00400000
eip=bf8cec96 esp=b7e82cac ebp=b7e82cf4 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010202
win32k!HmgQueryAltLock+0x11:
bf8cec96 8b4004 mov eax,dword ptr [eax+4] ds:0023:00000004=????????●「????????」とはds空間のアドレス「00000004」にメモリが存在しないことを示す。
存在しないメモリ空間でmov 命令を実行したためにトラップが発生した。
●通常、メモリ空間「00000000」の周辺はOSの禁止領域です。
Resetting default scope
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x8E
PROCESS_NAME: ApSpk2.exe
LAST_CONTROL_TRANSFER: from 8051fea6 to 805359ae
STACK_TEXT: ●スタックポインタの概要スタック、プログラム、パラメータ(1/2/3) 、シンボル表記
b7e82800 8051fea6 0000008e c0000005 bf8cec96 nt!KeBugCheckEx+0x1b
b7e82bc8 804e1ada b7e82be4 00000000 b7e82c38 nt!KiDispatchException+0x3b1
b7e82c30 804e1a86 b7e82cf4 bf8cec96 badb0d00 nt!CommonDispatchException+0x4d
b7e82c4c 804e3ff1 00000001 e4efd004 00000000 nt!Kei386EoiHelper+0x18a
b7e82c4c 00010a83 00000001 e4efd004 00000000 nt!KiTrap0E+0xcc ●Trap0E●この下でTrap0E (NMI-14:ページフォルト) が発生
WARNING: Frame IP not in any known module. Following frames may be wrong.
7c94eb90 24a48dc3 00000000 0024648d 90909090 0x10a83
7c94eb94 00000000 0024648d 90909090 24548d90 0x24a48dc3
STACK_COMMAND: kb
FOLLOWUP_IP:
win32k!HmgQueryAltLock+11
bf8cec96 8b4004 mov eax,dword ptr [eax+4]
SYMBOL_STACK_INDEX: 0
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: win32k
IMAGE_NAME: win32k.sys ●問題発生のドライバ「win32k.sys」を左クリックすると詳細表示。
DEBUG_FLR_IMAGE_TIMESTAMP: 41107f7a
SYMBOL_NAME: win32k!HmgQueryAltLock+11
FAILURE_BUCKET_ID: 0x8E_VRF_win32k!HmgQueryAltLock+11
BUCKET_ID: 0x8E_VRF_win32k!HmgQueryAltLock+11
Followup: MachineOwner
---------
●ドライバ「win32k.sys」の詳細表示
kd> lmvm win32k
start end module namebf800000 bf9c0200 win32k (pdb symbols) C:\websymbols\win32k.pdb\D4893\win32k.pdb
Loaded symbol image file: win32k.sys
Image path: \SystemRoot\System32\win32k.sys
Image name: win32k.sys
Timestamp: Wed Aug 04 15:17:30 2004 (41107F7A)
CheckSum: 001CC8A2
ImageSize: 001C0200
File version: 5.1.2600.2180
Product version: 5.1.2600.2180
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0411.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft(R) Windows(R) Operating System
InternalName: win32k.sys
OriginalFilename: win32k.sys
ProductVersion: 5.1.2600.2180
FileVersion: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
FileDescription: Multi-User Win32 Driver
LegalCopyright: (C) Microsoft Corporation. All rights reserved.
問題の仮説を立てる (仮説1:ハード・・・ 仮説2:ソフト・・・ 仮説3:他・・・ ) |
■ メモリダンプのコマンドで確認
WinDbg のCommand画面で「!analyze -v」「エンタ」と打鍵すると、OSがエラーを自動解析する。手順は上記を参照。
■ 日本語のWebで確認
日本語版の 「STOP エラー 一覧」 を参照する。
■ WinDbg のヘルプで確認
英語版ですがWinDbg のヘルプ画面でもSTOPエラー コード を参照する。より詳細に記載しています。
WinDbg → Help → Contents → Debugging Tools for Windows → Bug Checks (Blue Screens) → Bug Check Code Reference → 「STOPエラー コード」
■ マイクロソフト ウェブサイトで確認
下記「Microsoft サポート オンライン」で「技術情報の検索」で類似問題を検索する。
「!analyze -v」コマンドでの「OSが自動解析」はソフトウェアの観点からエラーを表記しており、その精度もだいぶ向上してきました。
しかし、ソフト的な側面だけではなく、ハード的側面からも問題を想定する必要があります。ここでは原因を絞り込んではならない。