Ask CORE

Microsoft Japan Windows Technology Support

メモリダンプを解析する

Windows テクノロジー サポートの永野です。


ダンプの設定やサイズのお話をしましたので、今回は実際に解析しましょう。


 


まずは、以下のサイトからデバッガをダウンロードして、インストールしてください。


32bit版


http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx


64bit版


http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx


 


インストールが完了したら、シンボルのありかを環境変数に登録します。


[システムのプロパティ] – [環境変数] を開きます。


ユーザでもシステムでも構わないので、[新規] をクリックします。


変数名に “_NT_SYMBOL_PATH”、変数値に “SRV*c:\websymbols*http://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.


なので、ユーザが自ら採取したダンプであることがわかります。


自分でダンプを採取して、遊びたい人のために次回はその方法をご紹介する予定です。