Jump to content

On-line Debugging Tool

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by FrankFlanagan (talk | contribs) at 18:03, 1 August 2010 (Add xref to adb on unix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
For other expansions of "ODT", see ODT.

Octal Debugging Technique, or ODT, was the name of several debugger programs originally developed for DEC hardware. Various operating systems including OS/8, RT-11, RSX-11, and RSTS/E implemented ODT as did the firmware console of all of the LSI-11-family processors including the 11/03, 11/23/24, 11/53, 11/73, and 11/83/84.

The debugger allowed access to memory using octal addresses and data. Within the software systems, the debugger accessed the process's virtual memory. The firmware console implementation accessed physical memory.

ODT is a non-symbolic debugger and implements similar functionality to adb on Unix systems.

Console ODT

Console ODT[1] replaced the lights and switches console of many of the eralier processors. Access to console ODT is obtained either from power up (with appropriate power up mode selected), by the execution of a HALT instruction in kernel mode, or by use of the front panel halt switch or button.

Commands

Console ODT commands are as follows:

<CR> Close currently open location or register
<LF> Close currently open location or register and open next
P    Proceed, execute next instruction with no imlied reset
     If the halt switch is down this is allows for single steppinng
<addr>G Load PC with <addr>, reset and commence execution at address
Rn/ or $n/  Open register n
RS/ or $S/  Open PSW
If console ODT encounters a bus timeout it displays ?<CR><LF>

Example

@1000/ xxxxxx 112737<LF>
001002 xxxxxx 101<LF>
001004 xxxxxx 177566<LF>
001006 xxxxxx 137<LF>
001010 xxxxxx 1000<CR>
>R7/xxxxxx 1000<CR>
>RS/340

This deposits the program

MOVB 'A', @#177666  ; Move 'A' into console transmit register
JMP @#1000        ; Jump back to start

The deposit to the PC, sets the PC to the start of the program and the deposit to the PSW locks out interrupts.

The effect of this will be to write a stream of "A" to the console. As there is no check for transmitter ready, it is highly probable that a large number of garbage characters will be displayed.

RSX-11M-Plus ODT

The RSX-11M-Plus ODT[2] is essentially a superset of all other ODT implementations.

ODT is implemented as code that is linked with a task using the Task Builder /DA switch.

TKB HELLO/DA,HELLO/CR=HELLO

Once any task built with ODT is run ODT is invoked on entry.

RUN HELLO
ODT:TT0
_

The underscore is the standard ODT prompt.

It should be remembered that addresses in the ODT debugger are 16 bit virtual addresses in the mode in which ODT is currently operating, not the physical addresses used with console ODT.

Commands

Command Effect
. Current location indicator i.e. address of last location opened
<CR> Closes current location/register
k<CR> Deposit the value k in the currently open location/register and closes it
<LF> Closes current location/register and opens next
k<LF> Deposit the value k in the currently open location/register and open next
^ Closes currently open location and opens immediatly preceeding
k^ Deposits the value k in the currently open location and opens immediatly preceeding
_ or k_ Opens the location calculated by using the contents of the present location as a PC relative offset if k is specified deposits the value k in the present location before opening the new location
@ or k@ As _ except using the contents of the current location as an absolute address
> or k> Treats the low order byte of the currenly open location as a branch offset, calculates the destination address of the branch and opens that location. If k specified stores the value k in the currently open location before opening the new location
< or k< If the currently opened location was opened using the commands _ or > or @ closes the currently open location and reopens the location most recently opened using <lf>, ^, or /.

See also

References

  1. ^ p192-202 PDP-11 Processor Handbook: pdp11/04/24/34a/44/70, Digital, 1981
  2. ^ IAS/RSX-11 ODT Reference Manual, Order Number AA-M507A-TC, Digital, 1982