On-line Debugging Tool

In this article, we are going to explore On-line Debugging Tool and its impact on our current society. On-line Debugging Tool is a topic that has sparked the interest of many experts in the field, as well as the general population. Over the years, On-line Debugging Tool has been the subject of numerous studies and investigations, which have allowed us to better understand its implications and consequences in different areas. From its origin to its current effects, On-line Debugging Tool has played a large role in shaping our reality, and it is crucial to analyze it from different perspectives to understand its full scope. In this sense, this article aims to unravel the most relevant aspects of On-line Debugging Tool, as well as discuss its importance and relevance today.

On-line Debugging Tool (ODT) is a family of several debugger programs developed for Digital Equipment Corporation (DEC) hardware. Various operating systems including OS/8, RT-11, RSX-11, and RSTS/E implement 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 allows access to memory using octal addresses and data. Within the software systems, the debugger accesses the process's address space. DEC's line of PDP-11 processors do not implement virtual memory, from an operating system perspective, but instead work in a fixed address space, which is mapped into a unified view of the program's address space, using an Active Page Register (APR). An APR can map the program's RAM in increments of 4K 16-bit words, to a maximum of 32K. In other words, an APR can map 8 segments of RAM, each limited to 4K. Because of this structure, an APR is able to map a maximum of 32K 16-bit words in RAM. In the case of RSTS/E, this usually means that a Runtime System, or RTS, maps to the upper portion of the address space and a user program resides in the lower portion of the address space. The RTS provides code to support access to the Operating System, on behalf of the user program; the RTS itself stores any of its non-static data in the address space of the user program, because the RTS is typically read-only. The operating system loads a single copy of the RTS and this is mapped to any user program that requires that RTS. The APR is set to map the RTS into the upper portion of the program's address space, in 4 KiB increments. So the BASIC Plus RTS (for the Basic+ Programming Language) typically maps 16 KiB to itself and the user program is mapped, in 4 KiB increments, in the lower 16 KiB. The RT11 RTS occupies 4 KiB, so a user program, like the RT11-based Peripheral Interchange Program (PIP), can expand to a maximum of 28 KiB.

ODT can be used to "patch" binary modules, like an RTS, without requiring the re-compilation of the binary's source.

The firmware console implementation accesses physical memory.

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

Console ODT

Console ODT replaces the "lights and switches" console of many of the earlier 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.

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', @#177566  ; 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 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.

Addresses in the ODT debugger are 16-bit addresses in the mode in which ODT is operating, not the physical addresses used with console ODT.

OS/8 Octal Debugging Technique

The PDP-8's OS/8 operating system's ODT command invokes its Octal Debugging Technique tool.

As with the subsequent PDP-11 ODT programs, it is non-symbolic, and it can examine or modify memory, and also set breakpoints.

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
  3. ^ Reference manual DEC-D8-COCO-D, ODT-8, Dec. 1967 "DEC-D8-COCO-D ODT.pdf" (PDF). BitSavers.org.