On Nov 1, 2025, at 1:23 PM, Martin Bishop via cctalk
<cctalk(a)classiccmp.org> wrote:
Peter
I presume by ODT you mean the 11/23 Console ODT, there are ODT programs from the Paper
Tape era which can be useful on bare metal.
ODT's cousin DDT and family tree are sketched in
https://en.wikipedia.org/wiki/Dynamic_Debugging_Technique
If you wish a full fat ODT for bare metal, albeit expecting paper tape input (octets into
the console terminal should serve), you could investigate
DEC-11-XPTSA-B-O Paper tape Software handbook - section 5.3.4 pg 5-12 pdf pg 114 :: is a
good starting point, the "tapes" you wish are ODT-11 and ODT11-X.
Given the Halt + Proceed incantation, only the later / larger / more comprehensive
ODT11-X has an instruction step capability.
The DEC hardware mechanism for single step and breakpoints, is a combination of the Trace
Trap bit in the PSW, its chum the TRAP OpCode, and as illustrated by Halt + P : microcode.
I would leave interfacing with that to paper tape ODT or a more recent debugger; their
greatest utility is to increase the size of the key hole you peer through (into the
program / machine)
Martin
I've always done PDP-11 debugging with ODT. That has been a standard tool since the
paper tape days, and later versions (from DEC that is, I don't know others) are quite
similar with only minor tweaks. The primary one I used is the "monitor ODT"
(kernel debugger) that has been part of RSTS since V4A (or perhaps earlier). And for user
mode debugging there always was an ODT.OBJ you could link in with the program to be
debugged.
All these ODTs are octal only, no symbol support of any kind. So you'd debug with a
link map and assembly listings, using the relocation registers so ODT would show addresses
within modules as offsets from the module start rather than absolute addresses. All that
works quite well. ODT doesn't do opcodes either, which is not a big deal; after all
few weeks you have the commonly used opcodes all memorized.
Admittedly I like gdb now that I've been using it for a few decades. A gdb port for
pdp11 would be an awesome thing. :-) Or, for that matter, GDB stub support in Open SIMH,
that would actually be fairly easy.
Once in a while for hard problems I have used the data breakpoint feature in Open SIMH.
I've used MIPS chips that had such a thing in hardware. It isn't needed often but
when you need it, things are pretty desperate and any other tool is just not a real
option.
paul