On-line Debugging Tool
| Company type | Software |
|---|---|
| Industry | Computer software, Debugging tools |
| Founder | Digital Equipment Corporation |
| Products | Debugger applications for DEC hardware platforms |
On-line Debugging Tool (ODT) refers to a series of debugger applications designed for Digital Equipment Corporation (DEC) hardware platforms. It is available across multiple operating system environments such as OS/8, RT-11, RSX-11, and RSTS/E, in addition to being embedded within the firmware console of all processors in the LSI-11 family, including models like the 11/03, 11/23/24, 11/53, 11/73, and 11/83/84.
ODT provides direct manipulation of memory through the use of octal notation for both addresses and data. On DEC's PDP-11 CPUs, which do not support virtual memory, memory management relies on an Active Page Register (APR) that maps physical RAM in 4K blocks up to a maximum of 32K 16-bit words. For instance, within RSTS/E, the APR commonly assigns the upper memory region to a Runtime System (RTS) while allocating the lower region for user applications. The RTS delivers essential operating system functions and is shared among multiple programs, improving memory efficiency by loading a single RTS instance that is mapped into various processes. As an example, the BASIC Plus RTS occupies 16 KiB of memory, reserving the other 16 KiB for user code; meanwhile, the RT11 RTS uses only 4 KiB, enabling user programs to utilize up to 28 KiB.
ODT facilitates direct binary modification of components such as RTS modules without requiring recompilation, thereby streamlining development workflows. The firmware console variant interacts directly with physical memory. As a non-symbolic debugger, ODT offers capabilities similar to those found in Unix’s Advanced Debugger (adb).
Console ODT
The Console ODT supersedes earlier "lights and switches" front panels on DEC processors. It can be accessed during system startup (under specific conditions), by executing a HALT instruction while in kernel mode, or by using the halt switch located on the front panel.
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 input sequence loads the following program: <syntaxhighlight lang="nasm">
MOVB 'A', @#177566 ; Store 'A' into console transmit register JMP @#1000 ; Jump to program start
</syntaxhighlight> It sets the Program Counter (PC) to the beginning of this code and disables interrupts via the Program Status Word (PSW). As a result, the console continuously outputs "A" characters; however, since no check is performed for transmitter readiness, some extraneous characters may appear on screen.
RSX-11M-Plus ODT
The RSX-11M-Plus variant of ODT represents an extensive enhancement over other ODT versions.
ODT is incorporated as linked code within a task using the Task Builder’s /DA option.
TKB HELLO/DA,HELLO/CR=HELLO
When executing a task built with ODT enabled, the debugger activates upon entry.
RUN HELLO ODT:TT0 _
Here, the underscore denotes the typical ODT prompt.
Note that ODT debugger addresses are 16-bit within the current mode and differ from those used by physical console ODT.
OS/8 Octal Debugging Technique
Within the PDP-8 operating system OS/8, invoking its ODT command launches its Octal Debugging Technique utility.
Similar to later PDP-11 ODT implementations, this tool operates without symbolic references and allows users to inspect and modify memory as well as set breakpoints.