Specifications

Debugging a Device Driver
11.4 Troubleshooting Network Failures
Example 11–11 Canceling the Breakpoints
- SRC: module C_TEST_ROUTINES -scroll-source------------------------------------
47: #pragma noinline(test_c_code,test_c_code2,test_c_code3)
48: extern volatile int64 xdt$fregsav[34]; /* Lie and say these are integer
49: use iregsav because the debugger will r
50: be using those!*/
51:
52: int test_c_code3(int subrtnCount)
53: {
54: subrtnCount = subrtnCount - 1;
55: if (subrtnCount != 0)
56: subrtnCount = test_c_code3(subrtnCount);
-> 57: return subrtnCount;
58: }
59: int test_c_code2(int64 in64,int in32, int64 test, int64* pVar)
60: {
61: xdt$fregsav[5] = in64;
62: xdt$fregsav[6] = in32;
63: if (xdt$fregsav[9] > 0)
64: *pVar = (*pVar + xdt$fregsav[17])%xdt$fregsav[9];
65: else
66: *pVar = (*pVar + xdt$fregsav[17]);
67: xdt$fregsav[7] = test_c_code3(10);
68: xdt$fregsav[3] = test;
- OUT -output-------------------------------------------------------------------
break at C_TEST_ROUTINES\test_c_code3\%LINE 56
break at C_TEST_ROUTINES\test_c_code3\%LINE 56
C_TEST_ROUTINES\test_c_code3\subrtnCount: 8
module name routine name line rel PC abs PC
*C_TEST_ROUTINES test_c_code3 56 0000002C 8002A7CC
*C_TEST_ROUTINES test_c_code3 56 0000003C 8002A7DC
*C_TEST_ROUTINES test_c_code2 67 000000AC 8002A8A4
*C_TEST_ROUTINES test_c_code 80 00000084 8002A960
00000000 8234A244
00000000 8234A0C0
SHARE$EXEC_INIT 00000000 82379BC4
stepped to C_TEST_ROUTINES\test_c_code3\%LINE 57
- PROMPT -error-program-prompt--------------------------------------------------
DBG> go
DBG> step
DBG> examine subrtnCount
DBG> show calls
DBG> cancel break/all
DBG> go
DBG>
Next, issue a STEP command when sitting at a return statement. Returns are
branches on OpenVMS AXP; however the debugger treats them as a special case.
So, for branches the default is STEP/OVER; however for return instructions the
default is STEP/INTO. You pop back up a level and are now sitting at an event
point at line 56.
The reason you we are at line 56 and not line 57 is that you have returned from
the subroutine; however you have not stored the result in subrtnCount yet.
11–23