メモリダンプを解析する
Windows テクノロジー サポートの永野です。
ダンプの設定やサイズのお話をしましたので、今回は実際に解析しましょう。
まずは、以下のサイトからデバッガをダウンロードして、インストールしてください。
32bit版
https://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
64bit版
https://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx
インストールが完了したら、シンボルのありかを環境変数に登録します。
[システムのプロパティ] - [環境変数] を開きます。
ユーザでもシステムでも構わないので、[新規] をクリックします。
変数名に "_NT_SYMBOL_PATH"、変数値に "SRV*c:\websymbols*https://msdl.microsoft.com/download/symbols" を登録します。
C: ドライブに websymbols フォルダを作成してください。
これで環境が整いました。早速起動しましょう。
スタートメニューから Debugging Tools for Windows をたどって、WinDbg を選択してください。
起動したら [File] - [Open Crash Dump] から解析対象のダンプを選択します。
ちょっと時間がかかりますが、こんな画面が出ます。
ここで、
!analyze -v
と入力してください。
デバッガによる自動解析が始まります。
今回解析したダンプは、こんな感じでした。
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
MANUALLY_INITIATED_CRASH (e2)
The user manually initiated this crash dump.
Arguments:
Arg1: 00000000
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000
Debugging Details:
------------------
BUGCHECK_STR: MANUALLY_INITIATED_CRASH
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
PROCESS_NAME: System
CURRENT_IRQL: 5
LAST_CONTROL_TRANSFER: from 8fd53c6b to 81d070e3
STACK_TEXT:
805ecc40 8fd53c6b 000000e2 00000000 00000000 nt!KeBugCheckEx+0x1e
805ecc70 8fd54174 00d54920 0026ebd8 00000000 i8042prt!I8xProcessCrashDump+0x255
805eccb8 81c8d941 871e0280 86d54868 805ecce4 i8042prt!I8042KeyboardInterruptService+0x21e
805eccb8 81ceeeae 871e0280 86d54868 805ecce4 nt!KiInterruptDispatch+0x51
805ecd54 00000000 0000000e 131542b4 0d7306da nt!KiIdleLoop+0x1a
STACK_COMMAND: kb
FOLLOWUP_IP:
i8042prt!I8xProcessCrashDump+255
8fd53c6b 83fe01 cmp esi,1
SYMBOL_STACK_INDEX: 1
SYMBOL_NAME: i8042prt!I8xProcessCrashDump+255
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: i8042prt
IMAGE_NAME: i8042prt.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 47918f5d
FAILURE_BUCKET_ID: MANUALLY_INITIATED_CRASH_i8042prt!I8xProcessCrashDump+255
BUCKET_ID: MANUALLY_INITIATED_CRASH_i8042prt!I8xProcessCrashDump+255
Followup: MachineOwner
---------
今回、ブルースクリーンを発生させたモジュールがサクッと表示されます。
MODULE_NAME: i8042prt
IMAGE_NAME: i8042prt.sys
ここに表示されたモジュールが犯人の可能性があります。
モジュールをアップデートすることで、障害が起きなくなるかどうか等、試してみてはいかがでしょうか?
ちなみに落ちた理由も、自動解析で表示されます。
今回は、
MANUALLY_INITIATED_CRASH (e2)
The user manually initiated this crash dump.
なので、ユーザが自ら採取したダンプであることがわかります。
自分でダンプを採取して、遊びたい人のために次回はその方法をご紹介する予定です。
Comments
- Anonymous
December 21, 2013
Pingback from ??????????????????????????????????????????????????? | SE ?????????