System Debug Reference Manual (32650-90888)

Chapter 6 273
System Debug Command Specifications M-X
TR[ACE]
The above examples specifies the FULL option to display the value of the X, P, and status
registers, and the DELTA-Q value.
Translated Code Examples
Break at: NM [1] TRANS 24.00854ea4 PASCAL'LIBRARY2:?P'WRITESTR
$nmdebug > tr ,dual
PC=24.00854ea4 PASCAL'LIBRARY2:?P'WRITESTR
NM* 0) SP=40221290 RP=a.0067320c outer_block+$e8
NM 1) SP=402210a0 RP=a.00000000 inx_A0000+$14
(end of NM stack)
The above example shows Debug stopping at a breakpoint. The breakpoint was set in
SL.PUB.SYS at the entry point to the P'WRITESTR routine. Since the system SL is
translated, Debug set two breakpoints (one in the CM emulated code and one in the
translated NM code). The NM translated code breakpoint is encountered, and so Debug
stops.
A stack trace reveals that the process is indeed stopped at the entry point to P'WRITESTR,
but no other recognizable markers appear. This is because translated code does not
actually switch to CM mode, so no switch markers exist to enable the DUAL option to
function. However, the CM stack is maintained as if the code were being run by the
emulator. Switching to cmdebug and performing a stack trace reveals this.
$nmdebug > cm
%cmdebug > tr
SYS % 36.15626 ?P'WRITESTR (mITroc CCG)
PASCAL'LIBRARY2
* 0) PROG % 0.1737 PROCESSSTUDENT+%332 (mITroc CCG) SEG'
1) PROG % 0.253 OB'+%253 (mITroc CCG) SEG'
2) SYS % 25.0 ?TERMINATE (MItroc CCG) CMSWITCH
The above trace shows all of the CM procedures that are active on the stack. Remember,
the CM stack is maintained even if the code is running translated.
Dual Mode Examples
$nmdat > tr,d
PC=a.000a4838 enable_int+$20
NM* 0) SP=40201ce0 RP=a.0013cdf0 notify_dispatcher.block_current_process+$294
NM 1) SP=40201ce0 RP=a.0013deec notify_dispatcher+$34c
NM 2) SP=40201c88 RP=a.001dc964 wait_for_active_port+$ec
NM 3) SP=40201c10 RP=a.001dd680 receive_from_port+$450
NM 4) SP=40201bc0 RP=a.00228514 extend_receive+$4d8
NM 5) SP=40201b28 RP=a.00218bdc rendezvousio.get_specific+$194
NM 6) SP=40201a78 RP=a.00218ec8 rendezvousio+$13c
NM 7) SP=40201a08 RP=a.0020f274 attachio.perform_io+$f8
NM 8) SP=402018c8 RP=a.00210414 attachio.terminal_functions+$fac
NM 9) SP=40201838 RP=a.00214d40 attachio+$2e4
NM a) SP=402017e0 RP=a.0020e3bc ?attachio+$8
export stub: a.003e30e4 arg_regs+$28
NM b) SP=402015c8 RP=a.0044db34 nm_switch_code+$f30
NM c) SP=40201498 RP=a.000a09b0 cm_swtnm_call+$8
(switch marker frame)
CM SYS % 27.253 SWITCH'TO'NM'+%4 (Mitroc CCG) SUSER1