|
|
The following discussion assumes that the current Debug mode
is CM (prompt is: %cmdebug > ).
When a CM breakpoint is set at a CM address of a segment that
has been translated, Debug actually sets two breakpoints simultaneously:
A CM breakpoint at the specified CM address in the emulated object
code, in case the code runs emulated.
An NM breakpoint at CMTONMNODE (CM address), that is, at the
closest corresponding previous node in the NM translated code.
For example, with the following command, the two breakpoints marked as
[1] are set simultaneously:
%cmdebug > B 12.4
Original CM Translated
Object Code Object Code
CM Instructions NM Instructions
Seg.Off Sid.Off
+-------------+ +-------------+
%12.0 N | PROC+%0 | $1c.34b0 N | PROC+%0 |
%12.1 | PROC+%1 | $1c.34b4 | |
%12.2 N | PROC+%2 | $1c.34b8 | |
%12.3 | PROC+%3 | $1c.34bc | |
%12.4 [1] | PROC+%4 | $1c.34c0 [1] N | PROC+%2 |
%12.5 | PROC+%5 | $1c.34c4 | |
%12.7 N | PROC+%6 | $1c.34c8 | |
%12.10 | PROC+%7 | $1c.34cc | |
%12.11 [2] | PROC+%10 | $1c.34d0 | |
%12.12 | PROC+%11 | $1c.34d4 [2] N | PROC+%6 |
%12.13 [3] | PROC+%12 | $1c.34d8 | |
%12.14 N | PROC+%13 | $1c.34dc | |
%12.15 | PROC+%14 | $1c.34e0 | |
%12.16 | PROC+%15 | $1c.34e4 N | PROC+%13 |
+-------------+ +-------------+
Note that multiple CM address breakpoints may map to the same
NM previous node breakpoint. For example:
%cmdebug > B PROC+10
brkpt # 2 maps to NM $1c.34d4
%cmdebug > BPROC+12
brkpt # 3 maps to NM $1c.34d4 also
Only one NM breakpoint is needed at $1c.34d4.
|