$ HYPERSPIXX$AGENT = "$HT_EXE:HYPERSPIXX$AGENT" $ DEFINE /PROCESS HYPERSPI$DEBUG TRUE $ HYPERSPIXX$AGENt HYPERSPIXX$AGENT AXP-3.0.0 %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, Fmask=00080000, summary=02, PC=0000000000031448, PS=0000001B -SYSTEM-F-FLTINV, floating invalid operation, PC=0000000000031448, PS=0000001B Improperly handled condition, image exit forced. Signal arguments: Number = 0000000000000006 Name = 0000000000000504 0008000000000000 0000000000080000 0000000000000002 0000000000031448 000000000000001B Register dump: R0 = 0000000000040990 R1 = 00B2816B42BD488F R2 = 0000000000010250 R3 = 0000000000000001 R4 = 00000000000201F0 R5 = 0000000000040860 R6 = 0000000000040870 R7 = 0000000000040870 R8 = 0000000000000005 R9 = 0000000000040907 R10 = 00000000000408F5 R11 = 000000007FFCDC18 R12 = 000000007FFCDA98 R13 = 000000007AEC33A0 R14 = 0000000000000000 R15 = 000000007AEC29B0 R16 = 0000000000000000 R17 = 0000000000010848 R18 = 000000007BF260F8 R19 = FFFFFFFFFFFFFFF9 R20 = FF4D7E94BD42B771 R21 = 000000007B63DA10 R22 = 000000007ADB9940 R23 = 0000000000000002 R24 = 0000000000000001 R25 = 000000000006C004 R26 = FFFFFFFF80FAFB60 R27 = 000000007BEF4820 R28 = FFFFFFFF80CAFE40 R29 = 000000007ADB9930 SP = 000000007ADB9860 PC = 0000000000031448 PS = 200000000000001B $ Crash said: %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, Fmask=00080000, summary=02, PC=0000000000031448, PS=0000001B -SYSTEM-F-FLTINV, floating invalid operation, PC=0000000000031448, PS=0000001B Map states where the PC is (in "executable", obviously): SPISHR 1 5 P-00000000-R 0 0 READ ONLY EXECUTABLE SPISHR_001 LESS/EQUAL 106 0 2 4 P-00010000-R 0 0 READ WRITE COPY ON REF SPISHR_002 LESS/EQUAL 106 0 2 20 P-00020000-R 0 0 READ WRITE COPY ON REF SPISHR_003 LESS/EQUAL 106 0 3 23 P-00030000-R 0 0 READ ONLY EXECUTABLE SPISHR_004 LESS/EQUAL 106 0 4 1 P-00040000-R 0 0 READ ONLY SPISHR_005 LESS/EQUAL 106 0 2 1 P-00050000-R 0 0 READ WRITE COPY ON REF SPISHR_006 LESS/EQUAL 106 0 3 1 P-00060000-R 0 0 READ ONLY EXECUTABLE SPISHR_007 LESS/EQUAL 106 0 2 1 P-00070000-R 0 0 READ WRITE COPY ON REF SPISHR_008 LESS/EQUAL 106 0 2 4 P-00080000-R 0 0 READ WRITE FIXUP VECTORS SPISHR_009 LESS/EQUAL 106 0 DEFAULT_CLUSTER 0 5 00010000 3 0 READ WRITE NON-SHAREABLE ADDRESS DATA 0 2 00020000 8 0 READ WRITE COPY ON REF 0 30 00030000 10 0 READ ONLY EXECUTABLE <<<<------- 0 5 00040000 0 0 READ WRITE DEMAND ZERO 0 2 00050000 40 0 READ WRITE FIXUP VECTORS 253 20 7FFF0000 0 0 READ WRITE DEMAND ZERO it means the program crashed on offset 1448 in the executable (31448 - 30000). In the machine code section of the lis-file: (removed opcodes to keep it on 132 chars) 0234 L$227: 1420 LDAH R25, 7(R31) ; 040554 1424 LDL R16, (R4) ; 040553 1428 LDQ R17, -528(R2) ; 040554 142C LDA R25, -16380(R25) 1430 LDQ R18, -552(R2) 1434 LDQ R26, -544(R2) 1438 LDF F1, (R0) ; 040552 143C LDQ R27, -536(R2) ; 040554 1440 LDA R17, 936(R17) 1444 ADDF F1, F18, F19 ; 040552 1448 STF F19, (R0) <============================================================================== 144C UNOP 1450 BEQ R16, L$122 ; 040553 1454 LDL R16, DECC$GA_STDOUT ; R16, (R18) ; 040554 1458 JSR R26, DECC$GXFPRINTF ; R26, R26 145C L$122: ; 040555 in the code section, looking at line 40552 - that is the line number above the location - it may be that one. 1 40538 /**************************/ 1 40539 /* calculate elapsed time */ 1 40540 /**************************/ 1 40541 1 40542 lib$sub_times (&CurrentBinTime, &PreviousBinTime, &DiffBinTime); 1 40543 1X 40544 #ifdef __RMIDEF_LOADED 1X 40545 status = lib$cvts_from_internal_time (&cvtf_mode, &DeltaSeconds, 1X 40546 &DiffBinTime); 1X 40547 #else 1 40548 status = lib$cvtf_from_internal_time (&cvtf_mode, &DeltaSeconds, 1 40549 &DiffBinTime); 1 40550 #endif 1 40551 1 40552 TotalDeltaSeconds += DeltaSeconds; <<=========================== HERE 1 40553 if (Debug) 1 40554 fprintf (stdout, "DeltaSeconds: %f TotalDeltaSeconds: %f\n", 1 40555 DeltaSeconds, TotalDeltaSeconds); 1 40556 Next stap is to build the program /DEBUG (Seems to imply /NOOPTIMAZE - see at end) and link /TRACEBACK/DEBUG. $ CC /PREFIX=ALL/DEBUG /DEFINE=(__VMS) /OBJECT=[.OBJ_AXP]/LIST/MACHINE hyperspixx$agent $ LINK /TRACE /EXECUTABLE=HT_EXE:HYPERSPIXX$AGENT.EXE - [.OBJ_AXP]hyperspixx$agent, - []HYPERSPIXX$AGENT_AXP.OPT/OPTIONS/MAP/FULL SYS$SHARE:SPISHR.EXE/SHARE $ HYPERSPIXX$AGENt HYPERSPIXX$AGENT AXP-3.0.0 In debug: DBG> set bre %line 40552 do (exa totaldeltasecond, deltaseconds; go) gave me output every second - NO ERROR. Only the first invocation showed totaldeltasecond < 0 nut that caused no problems. Stopped program by ^Y $ HYPERSPIXX$AGENt/nodebug just ran after GO on main. HYPERSPIXX$AGENT AXP-3.0.0 Rebuild nomallly (/NODEBUG (seems to imply /OPTIMIZE?), /NOTRACEBACK) and the crash happens again. $ CC /PREFIX=ALL/NODEBUG /DEFINE=(__VMS) /OBJECT=[.OBJ_AXP]/LIST/MACHINE hyperspixx$agent $ LINK /TRACE /EXECUTABLE=HT_EXE:HYPERSPIXX$AGENT.EXE - [.OBJ_AXP]hyperspixx$agent, - []HYPERSPIXX$AGENT_AXP.OPT/OPTIONS/MAP/FULLCompiled /NODEBUG /NOOPT - the program runs. SYS$SHARE:SPISHR.EXE/SHARE $ HYPERSPIXX$AGENt HYPERSPIXX$AGENT AXP-3.0.0 %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, Fmask=00080000, summary=02, PC=0000000000031448, PS=0000001B -SYSTEM-F-FLTINV, floating invalid operation, PC=0000000000031448, PS=0000001B Improperly handled condition, image exit forced. Signal arguments: Number = 0000000000000006 Name = 0000000000000504 0008000000000000 0000000000080000 0000000000000002 0000000000031448 000000000000001B Register dump: R0 = 0000000000040990 R1 = 00B28174F311251D R2 = 0000000000010250 R3 = 0000000000000001 R4 = 00000000000201F0 R5 = 0000000000040860 R6 = 0000000000040870 R7 = 0000000000040870 R8 = 000000000000000F R9 = 0000000000040907 R10 = 00000000000408F5 R11 = 000000007FFCDC18 R12 = 000000007FF9C9E8 R13 = 000000007AEC33A0 R14 = FFFFFFFF8260F940 R15 = 000000007AEC29B0 R16 = 0000000000000000 R17 = 0000000000010848 R18 = 000000007BF260F8 R19 = FFFFFFFFFFFFFFF9 R20 = FF4D7E8B0CEEDAE3 R21 = 000000007B63DA10 R22 = 000000007ADB9940 R23 = 0000000000000002 R24 = 0000000000000001 R25 = 000000000006C004 R26 = FFFFFFFF80FAFB60 R27 = 000000007BEF4820 R28 = FFFFFFFF80CAFE40 R29 = 000000007ADB9930 SP = 000000007ADB9860 PC = 0000000000031448 PS = 200000000000001B $ Full stackdump due to NOTRACEBACK. For the sake of test: /DEBUG/OPTIMIZE (and link /TRACEBACK) $ CC /PREFIX=ALL/DEBUG/OPT /DEFINE=(__VMS) /OBJECT=[.OBJ_AXP]/LIST/MACHINE hyperspixx$agent $ LINK /TRACE /EXECUTABLE=HT_EXE:HYPERSPIXX$AGENT.EXE - [.OBJ_AXP]hyperspixx$agent, - []HYPERSPIXX$AGENT_AXP.OPT/OPTIONS/MAP/FULL SYS$SHARE:SPISHR.EXE/SHARE $ HYPERSPIXX$AGENt HYPERSPIXX$AGENT AXP-3.0.0 %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, Fmask=00080000, summary=02, PC=0000000000031448, PS=0000001B -SYSTEM-F-FLTINV, floating invalid operation, PC=0000000000031448, PS=0000001B %TRACE-F-TRACEBACK, symbolic stack dump follows image module routine line rel PC abs PC HYPERSPIXX$AGENT HYPERSPIXX$AGENT CollectSPI 40552 0000000000001448 0000000000031448 HYPERSPIXX$AGENT HYPERSPIXX$AGENT main 40131 0000000000000364 0000000000030364 HYPERSPIXX$AGENT HYPERSPIXX$AGENT __main 40090 0000000000000064 0000000000030064 0 FFFFFFFF8037FC44 FFFFFFFF8037FC44 %TRACE-I-END, end of TRACE stack dump Since /TRACEBACK is now added to LINK, you get the stackdump :)