System Debug Reference Manual (32650-90888)

Chapter 4 91
System Debug Command Specifications :-Exit
B (break)
Set a breakpoint at the current CM program counter. Both the CM emulated and NM
translated breakpoints are set. Next, set a breakpoint at the instruction following the
current CM program counter. Again, both the CM and NM breakpoints are set. Note that
the index number for the NM breakpoint is the same. This is because the two CM
breakpoints are contained in the same node. Appendix C provides a description of node
points.
%cmdebug > nm
$nmdebug > b 20.b940,#100,,{wl "Read another 100 records";c}
added: NM |4| TRANS $20.b940 FSEG:?FREAD
Break in space 20 at the indicated offset. Every 100 times the routine is called, stop and
print out a message. As with all breakpoint commands, the address typed in is converted
to a logical address. In this example, the long to logical (LTOLOG) routine is used by the
debugger. Space 20 does not correspond to any of the native mode libraries or the program
file. It is, however, found to correspond to a translated body of CM code (in this instance,
the FREAD intrinsic). Note that the corresponding CM emulator breakpoint is
not
set by
Debug.
%cmdebug > bl
CM [1] GRP % 0.13 ?AVERAGE SEG' (CST 112)
Corresponding NM bp = 1
CM [2] PROG % 0.1665 ?PROCESSSTUDENT SEG' (CSTX 1)
Corresponding NM bp = 2
CM [3] PROG % 0.1672 PROCESSSTUDENT+%265 SEG' (CSTX 1)
Corresponding NM bp = 3
CM [4] PROG % 0.1673 PROCESSSTUDENT+%266 SEG' (CSTX 1)
Corresponding NM bp = 3
%cmdebug > nm
$nmdebug > bl
NM [1] TRANS 3d.0016962c SEG':?AVERAGE
CM Ref count = 1
NM [2] TRANS 48.0000a610 SEG':?PROCESSSTUDENT
CM Ref count = 1
NM [3] TRANS 48.0000a66c SEG':PROCESSSTUDENT+%265
CM Ref count = 2
NM [4] TRANS 20.0000b940 FSEG:?FREAD
count: 0/64 cmdlist: {wl "Read another 100 records";c}
CM Ref count = 1
Now list the breakpoints that have been set.
Limitations, Restrictions
You cannot set a breakpoint on a gateway page.
If breakpoints are set for a process other than the current PIN, Debug has no knowledge of
the procedure names for the specified process unless the specified process is running the
exact same program file.
Having breakpoints set causes slight process overhead. Arming a global breakpoint causes
all
processes to suffer this overhead.
Breakpoints are ignored in the following circumstances: