Trailing-Edge
-
PDP-10 Archives
-
BB-BT99V-BB_1990
-
10,7/ddt/ddt.hlp
There are 6 other files named ddt.hlp in the archive. Click here to see a list.
DDT Command
Function
The DDT command starts DDT, the dynamic system debugger. If DDT
is already loaded with your core image, DDT starts at the address
given by the right half of .JBDDT in the Job Data Area. (The Job
Data Area stores information pertinent to your job. It is
described in the TOPS-10 Monitor Calls Manual.) If DDT is not yet
loaded, the monitor tries to merge a special version of DDT
(called VMDDT) into the address space starting at location
700000.
If DDT is not yet loaded and the monitor cannot read in VMDDT, it
prints the message: ?NO START ADDRESS. The monitor will not
read in VMDDT if your core image is execute-only.
The DDT command copies the saved program counter value into
.JBOPC and starts the program at an alternate entry point
specified in .JBDDT (beginning address of DDT as set by the
monitor). DDT contains commands to allow you to start or resume
at any desired address.
If your job was executing a monitor call when interrupted (at
monitor level and not in TTY input wait or SLEEP mode), the
monitor sets a status bit (UTRP) and continues the job at the
location where it was interrupted. When the monitor call
processing is complete, the monitor clears the status bit, sets
.JBOPC to the address following the monitor call, and then traps
to the DDT address found in .JBDDT.
If your job is at monitor level and in TTY INPUT WAIT or SLEEP
mode, the trap to the DDT address occurs immediately and .JBOPC
contains the address of the monitor call. If your job is at user
level, the trap also occurs immediately. Therefore, it is always
possible to continue the interrupted program after trapping to
DDT by executing a JRSTF @.JBOPC.
For additional information on the DDT program, refer to the
TOPS-10 DDT Manual.
Format
DDT
Characteristics
Places your terminal at user level.
If .JBDDT is zero, the monitor will merge SYS:VMDDT.EXE at
location 700000.
Example
The following example shows how the DEBUG and DDT commands are
used. Begin by writing a simple program with a spelling
(syntactical) error.
.TYPE TEST.MAC<RET>
TITLE TEST SIMPLE PROGRAM
SEARCH MACTEN,UUOSYM
HIMSG: ASCIZ \HI THERE - THIS IS A SIMPLE TEST PROGRAM!
\
TEST: JCLF
RESET
OUTSTR HIMSG
MONRT.
END TEST
Use DEBUG to compile and load the program:
.DEBUG TEST.MAC<RET>
MACRO: TEST
LINK: LOADING
?LNKUGS 1 UNDEFINED GLOBAL SYMBOL
JCLF 0
[LNKDEB DDT EXECUTION]
DDT
^Z
Loading showed that the program contained an error, which is then
corrected by using the SOS editor to replace "JCLF" with the
correct "JFCL".
.SOS TEST.MAC<RET>
EDIT: TEST.MAC
*SJCLF<ESC>JFCL<ESC>.<ESC><RET>
600 TEST: JFCL
*ES<RET>
[DSKC:TEST.MAC]
After correcting the file, reload the program, again using DEBUG.
.DEBUG TEST.MAC<RET>
MACRO: TEST
LINK: LOADING
[LNKDEB DDT EXECUTION]
DDT
^Z
The debugger successfully loaded the program; no errors were
detected. The new TEST.REL file automatically supersedes the old
.REL file. Next, save the core image of the loaded program, and
begin execution.
.SAVE TEST<RET>
TEST SAVED
.START<RET>
HI THERE - THIS IS A SIMPLE TEST PROGRAM!
The program ran successfully. However, when you try to run the
program again with the CONTINUE command, the command fails. No
provision has been made for rerunning the program.
.CONTINUE<RET>
?ILLEGAL UUO AT USER PC 013303
Start the debugger, using the DDT command:
.DDT<RET>
DDT
13303/ 0 ^
TEST+3/ MONRT.<LF>
PAT../ 0 JRST TEST<RET>
^Z
While running DDT, alter the core image of the program: since
the error was reported at address 13303 (octal), examine that
address. Then type an uparrow (^) to see the previous line,
which is the last line of program code. Then type a line-feed
(<LF>) to see the next line. "PAT.." is on the next line. Here,
insert the call "JRST TEST," then exit DDT.
Next, start the program:
.START<RET>
HI THERE - THIS IS A SIMPLE TEST PROGRAM!
Then CONTINUE the program. The execution is successful.
.CONTINUE<RET>
HI THERE - THIS IS A SIMPLE TEST PROGRAM!
Finally, edit the file with the changes made to the core image:
.SOS TEST.MAC<RET>
EDIT:TEST.MAC
*P^:*<RET>
100 TITLE TEST SIMPLE PROGRAM
200 SEARCH MACTEN,UUOSYM
300
400 HIMSG: ASCIZ \HI THERE - THIS IS A SIMPLE TEST PROGRAM!
500 \
600 TEST: JFCL
700 RESET
800 OUTSTR HIMSG
900 MONRT.
1000
1100 END TEST
*I950<RET>
950 JRST TEST
*ES<RET>
[DSKC:TEST.MAC]
Load the program, begin execution, and rerun the program:
.LOAD TEST.MAC<RET>
LINK: LOADING
EXIT
.START<RET>
HI THERE - THIS IS A SIMPLE TEST PROGRAM!
.CONTINUE<RET>
HI THERE - THIS IS A SIMPLE TEST PROGRAM!
.
Execution is successful.