Windowsプラットフォーム上でスタック トレース ダンプ ファイルが生成されるようにするためには、\binディレクトリにarcmain.exeのほかにもう1つのファイルをインストールしなければならなくなりました。新しいファイルはarcmain.pdbです。
Windowsプラットフォームで以前のバージョンのARCを実行した場合、アクセス違反エラーが発生したときには以下のような出力が生成されていました。
12/02/2010 09:55:25 *** Internal Failure ARC0001:UNEXPECTED TERMINATION,REASON=ACCESS VIOLATION at address 00533412, accessing memory at 0053c636 12/02/2010 09:55:25 --- Disconnecting all sessions. 12/02/2010 09:55:25 LOGGED OFF 7 SESSIONS ================================================================ Execution traceback not available on this platform. ================================================================ 12/02/2010 09:55:25 ARCMAIN TERMINATED WITH SEVERITY 16
スタック トレース ダンプが生成されたときには、ARCから以下のようなメッセージが表示されるようになりました。
12/02/2010 09:55:25 *** Internal Failure ARC0001:UNEXPECTED TERMINATION,REASON=ACCESS VIOLATION at address 00535292, accessing memory at 0053e636 12/02/2010 09:55:25 --- Disconnecting all sessions. 12/02/2010 09:55:25 LOGGED OFF 7 SESSIONS ================================================================ Stack trace dump file generated: Arcmain_Crash_2788.txt. ================================================================ 12/02/2010 09:55:25 ARCMAIN TERMINATED WITH SEVERITY 16
スタック トレース ダンプが生成されなかったときには、ARCから以下のようなメッセージが表示されるようになりました。
12/02/2010 09:55:25 *** Internal Failure ARC0001:UNEXPECTED TERMINATION,REASON=ACCESS VIOLATION at address 00533412, accessing memory at 0053c636 12/02/2010 09:55:25 --- Disconnecting all sessions. 12/02/2010 09:55:25 LOGGED OFF 7 SESSIONS ================================================================ Execution traceback not available. ================================================================ 12/02/2010 09:55:25 ARCMAIN TERMINATED WITH SEVERITY 16
Windowsの例
Windowsプラットフォームでは、スタック トレース ダンプ ファイル(Arcmain_Crash_2788.txt)の内容は以下のようになります。
Stack Dump file: Arcmain_Crash_2788.txt: UNEXPECTED TERMINATION, REASON=ACCESS VIOLATION at address 00535292, accessing memory at 0053e636 Registers: EAX:0053E636 EBX:7FFDE000 ECX:00000030 EDX:0053E65B ESI:01CB9249 EDI:E1C5FAC4 EBP:0010C6F4 ESP:0010C44C Flags:00010206 CS:EIP:001B:00535292 DS:0023 ES:0023 FS:003B GS:0000 SS:0023 1: 00535292 UTXPrint+1F2 c:\...\utprint.c:230 2: 00483984 SetObjHasDataFlag+84 c:\...\dmpsvc1.c:777 3: 004823A4 GetTBIDs+1C4 c:\...\dmpsvc1.c:2084 4: 004810BC DMDICT+D6C c:\...\dmpsvc1.c:1758 5: 0050CC95 SHStHndl+415 c:\...\shsthndl.c:377 6: 004EB9FE DMPhase1+DE c:\...\shdump.c:1615 7: 0050CC95 SHStHndl+415 c:\...\shsthndl.c:377 8: 004EDDF0 DMObject+480 c:\...\shdump.c:2485 9: 004ECBC7 SHDump+627 c:\...\shdump.c:2991 10: 00475921 CTCMain+12F1 c:\...\ctcmain.c:1775 11: 0046CA15 main+2D5 c:\...\arcmain.c:195 12: 00539336 __tmainCRTStartup+1A6 f:\...\crtexe.c:586 13: 0053917D mainCRTStartup+D f:\...\crtexe.c:403 14: 7C817067 RegisterWaitForInputIdle+49 Unknown file
スタック トレース ダンプ ファイルの各行には、以下の情報が示されます。
1: 00535292 UTXPrint+1F2 c:\...\utprint.c:230 1) '1:' -- line item number 2) '00535292' -- memory address of last line executed in current routine 3) 'UTXPrint+1F2' -- routine name plus memory offset into the routine 4) 'c:\...\utprint.c' -- full path of the module containing the routine 5) ':230' -- line offset within the module