System Debug Reference Manual (32650-90888)

Chapter 1 19
INTRODUCTION
What Is Debug?
Refer to chapter 10 for detailed information regarding SAT.
How to Debug
This chapter gives a very brief introduction to debugging. For additional information, refer
to the Programmer's Guide corresponding to the language compiler you are using. There
you will find details and examples specific to your language.
How to Debug a CM Program
Compile and, using the Segmenter, prepare your program file and optional library files.
In order to take full advantage of Debug's symbolic capabilities, you must ensure that your
program (and library) contain the necessary FPMAP symbolic records. This is easily
accomplished with the Segmenter as follows:
For program files, use the FPMAP option when you prepare your program:
:PREP USLFILE, PROGFILE;FPMAP
For libraries, use the FPMAP option each time you add a segment to the library:
ADDSL SEG ; FPMAP
To debug your program, specify the Debug parameter in the RUN command:
:RUN CMPROG.GRP.ACCT;LIB=G;DEBUG
The program file is loaded, and you break at the first instruction in your program, at the
main entry point.
Debug announces your arrival into the debugger. You are now ready to debug your
program (set breakpoints, define macros, turn on the windows, and so on). For example,
:RUN CMPROG.GRP.ACCT;LIB=G;DEBUG
CM DEBUG Intrinsic: PROG %0.22
%cmdebug > won
How to Debug an NM Program
Compile and link your program file and any necessary libraries.
To Debug your program, specify the DEBUG parameter in the RUN command:
:RUN NMPROG;DEBUG
The NM program file is loaded, and a temporary breakpoint is set at the external stub that
is linked to your program's main entry point.
When the program is launched into execution, the temporary breakpoint is hit, and you
immediately enter Debug (in NM mode). Debug announces your arrival and deletes the
temporary breakpoint.
To best observe the actual entrance (through the stub procedure) into your main program,
type WON to turn the windows on. Note that you are at a stub procedure, which is marked
with a question mark:
> ?PROGRAM