やってくる。私のCore2 duo E8400 ではこのエラー情報は、
アクセス違反例外 (0xc0000005= STATUS_ACCESS_VIOLATION)である。自分で解析している。
winXPには、winNT同様にDr. Watosonが標準搭載されている。(以下のリンク)(VistaではDebugDiag or ADPlus になっているらしい、これも以下のリンクに情報あり。)
http://blogs.technet.com/b/askperf/archive/2007/06/15/capturing-application-crash-dumps.aspx
Start->アプリケーション名を指定して実行から、
- drwtsn32 -i
- drwtsn
を順に実行する。2で立ち上がるmenuのlog pathで指定したfolderに、crashのログが格納される。これには、1でenableにした以降のクラッシュに関して、以下が格納されている。
- 日時
- マシン、SW環境
- 同時走行プロセスとプロセスID
- 論理アドレスマップとマップされているモジュール名
- 以下6-8は、エラー時に走行していた各スレッドに対して
- エラー時のstack trace
- エラー時の命令シーケンスとレジスタ値、ロードストアアドレス
- エラー時のstack dump
これだけあれば、解析できそう。
ちなみに、winXPでのプロセスの論理アドレスマップは以下のようになっている模様。
論理アドレス0付近や0xffffffff付近にはなにもマップしてなく、不正なポインタアクセス(よくあるのは、データ値(通常絶対値が小さい値が格納されている)をポインタと間違えて用いたアクセスなど)をトラップとして検出できるようになっているように思える。
アプリは0x00400000 から
dll群が 0x014f0000 から
0x7c933000 にはkernel本体と思われるkernel32.dllがある。
*----> モジュール リスト <----*
(0000000000400000 - 0000000000906000: C:¥Program Files¥geki_dojo2¥gekisashi.exe
(00000000014f0000 - 00000000014f9000: C:¥WINDOWS¥system32¥Normaliz.dll
(0000000010000000 - 000000001003d000: C:¥PROGRA~1¥JWord¥Plugin2¥jwdsrch.dll
(0000000017000000 - 0000000017014000: C:¥wintools¥AltIME213¥AltIME.DLL
(000000003b100000 - 000000003b11b000: C:¥WINDOWS¥IME¥IMJP8_1¥Dicts¥IMJPCD.DIC
(0000000040290000 - 0000000040376000: C:¥WINDOWS¥system32¥WININET.dll
(0000000040930000 - 0000000040b18000: C:¥WINDOWS¥system32¥iertutil.dll
(00000000442a0000 - 00000000443d3000: C:¥WINDOWS¥system32¥urlmon.dll
(000000004af10000 - 000000004b0bb000: C:¥WINDOWS¥WinSxS¥x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6001.22319_x-ww_f0b4c2df¥gdiplus.dll
(000000004edc0000 - 000000004ee16000: C:¥WINDOWS¥system32¥imjp81.ime
(0000000058730000 - 0000000058768000: C:¥WINDOWS¥system32¥uxtheme.dll
(000000005ab60000 - 000000005abfa000: C:¥WINDOWS¥system32¥COMCTL32.dll
(0000000060740000 - 0000000060749000: C:¥WINDOWS¥system32¥LPK.DLL
(00000000634b0000 - 00000000634cd000: C:¥Documents and Settings¥All Users¥Application Data¥Real¥RealPlayer¥BrowserRecordPlugin¥Chrome¥Hook¥rpchromebrowserrecordhelper.dll
(00000000648f0000 - 00000000649c0000: C:¥WINDOWS¥system32¥imjp81k.dll
(00000000719d0000 - 00000000719d8000: C:¥WINDOWS¥system32¥WS2HELP.dll
(00000000719e0000 - 00000000719f7000: C:¥WINDOWS¥system32¥WS2_32.dll
(0000000072f50000 - 0000000072f76000: C:¥WINDOWS¥system32¥WINSPOOL.DRV
(0000000073620000 - 000000007364e000: C:¥WINDOWS¥system32¥msctfime.ime
(0000000073f80000 - 0000000073feb000: C:¥WINDOWS¥system32¥USP10.dll
(00000000762e0000 - 00000000762fd000: C:¥WINDOWS¥system32¥IMM32.DLL
(0000000076300000 - 0000000076348000: C:¥WINDOWS¥system32¥comdlg32.dll
(0000000076970000 - 0000000076aad000: C:¥WINDOWS¥system32¥ole32.dll
(0000000076af0000 - 0000000076b1b000: C:¥WINDOWS¥system32¥WINMM.dll
(0000000076d90000 - 0000000076db2000: C:¥WINDOWS¥system32¥Apphelp.dll
(00000000770d0000 - 000000007715b000: C:¥WINDOWS¥system32¥OLEAUT32.dll
(0000000077160000 - 0000000077263000: C:¥WINDOWS¥WinSxS¥x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83¥comctl32.dll
(0000000077bb0000 - 0000000077bb8000: C:¥WINDOWS¥system32¥VERSION.dll
(0000000077bc0000 - 0000000077c18000: C:¥WINDOWS¥system32¥msvcrt.dll
(0000000077cf0000 - 0000000077d80000: C:¥WINDOWS¥system32¥USER32.dll
(0000000077d80000 - 0000000077e29000: C:¥WINDOWS¥system32¥ADVAPI32.dll
(0000000077e30000 - 0000000077ec2000: C:¥WINDOWS¥system32¥RPCRT4.dll
(0000000077ed0000 - 0000000077f19000: C:¥WINDOWS¥system32¥GDI32.dll
(0000000077f20000 - 0000000077f96000: C:¥WINDOWS¥system32¥SHLWAPI.dll
(0000000077fa0000 - 0000000077fb1000: C:¥WINDOWS¥system32¥Secur32.dll
(000000007c340000 - 000000007c396000: C:¥WINDOWS¥system32¥MSVCR71.dll
(000000007c3a0000 - 000000007c41b000: C:¥WINDOWS¥system32¥MSVCP71.dll
(000000007c800000 - 000000007c933000: C:¥WINDOWS¥system32¥kernel32.dll
(000000007c940000 - 000000007c9df000: C:¥WINDOWS¥system32¥ntdll.dll
(000000007d5b0000 - 000000007ddb0000: C:¥WINDOWS¥system32¥SHELL32.dll
(000000007df90000 - 000000007dfb1000: C:¥WINDOWS¥system32¥oledlg.dll