[TUHS] SDB debugger

Clem Cole clemc at ccc.com
Sat May 2 07:57:39 AEST 2020

On Fri, May 1, 2020 at 4:49 PM Paul Ruizendaal <pnr at planet.nl> wrote:

> Reading some more stuff about the road from 7th Edition to 8th Edition,
> this time about debuggers.
> My current understanding is as follows:
> - On 6th edition the debugger was ‘cdb’
One of the early USENIX tapes has a copy of ddt, which used the DEC DDT
syntax from the PDP-10 and PDP-11s.  I don't remember who created it.
Might have been Harvard or Cooper-Union.  I'm not sure I ever bothered to
learn cdb, as we had ddt at CMU.  What I don't remember is if it ran on
Fifth Edition.

> - On 7th edition it was ‘adb’, a rewrite / evolution from ‘cdb’
Mumble -- IIRC adb was an attempt at being common between the PDP-11 and
the Interdata.   Heavy use of the pre-processor.  Typedefs did not get
exist.   Steve Johnson should chime in here.  I thought it was a new code

Again, IIRC ddt did not just recompile on V7 and I needed something fast,
as I was trying to write what would become a 68000 backend for the C
compiler, so I just learned adb and never looked back until dbx.

> - In 32V a new debugger appears, ‘sdb’.

I thought adb was still in 32V also, adb was definitely in the BSD 4.x

> Its code seems a derivative from ‘adb’, but the command language is
> substantially reworked and it uses a modified variant of the a.out linker
> format - in essence the beginnings of ‘stabs’. Of course the compiler,
> assembler, linker and related tools all emit/recognize these new symbol
> table elements.
> - The July 78 file note by London/Reiser does not mention a reworked
> debugger at all; the 32V tape that is on TUHS has ’sdb' files that are
> dated Feb/Mar 1979. This stuff must have been developed between July 78 and
> March 79.
> - In the SysIII and 3BSD code on TUHS (from early 80 and late 79
> respectively) the stabs format is more developed. For SysIII it is ‘VAX
> only’. With these roots, it is not surprising that it is also in 8th
> Edition.
Don't forget Mark Linton's thesis, dbx  (which today has become gdb).  I
thought that was part of the original 4.1 (FastVax) tape; as part of the
new compilers from Susan Graham's students.   It certainly was part of
4.1c/4,2 as he had left for Stanford by then. [Note to Warren, we should
put 4.1 in the browsing tree.  The kernel is different enough from 4.0 and
does have new utilities, although it was not nearly as different as 4.1c.
The reality is until 4.2BSD came out with the networking support, most
Vaxen running BSD were 4.1 not 4.0 based.

FWIW: Does anyone know if dbx ended up 8 or 9th - Norman/Rob?

I also thought it was someone in Graham's team that had added support for
long identifiers.   Mary Ann did you remember/can you think of who that
might have been? But after that work was completed, the updated UCB
compilers went back to MH at some point, what changed were folded in I do
not know.

And of course, Steve started working on his new generation of compilers at
USG (PCC2), which would land in the System V stream.

> Two questions:
> (1) According to Wikipedia the original author of the stabs format is
> unknown. It also says that the original author of ‘sdb’ is unknown. Is that
> correct, is the author really unknown?
I don't remember, but it is possible this was UCB work that went back to

BTW: wnj started out as a Graham student.  His fingers were on a number of
things (I think such as the Pascal subsystem in 1 and 2 BSD).  It is
possible he did something like the long identifiers, I just don't remember,
when they went into the system or who did it.  I thought that was with the
Vax, as the compilers were pressed for code (address) space on the 16-bit

> (2) As far as I can tell, the ’sdb’ debugger was never back ported to 16
> bit Unix, not in the SysIII line and not in the 2.xBSD line. It would seem
> to me that the simple stabs format of 32V would have lent itself to being
> back ported. Is it correct that no PDP11 Unix used (a simple) stabs tool
> chain and debugger?
I don't know who would have done the work, other than someone like Bostic
(and he would have only done that if he needed it).   When did the 2.xBSD
line pick up the long identifiers?   Keith must have had something as the
Vax code started to assume them pretty soon after the feature was there.
FWIW: until the Linton's source debugger, the debugger I remember that most
of us used at UCB had been adb, not sdb.

The truth is that once the Vaxen showed up at UCB, most of the
grad-students like Mary Ann or myself all had accounts on those systems,
and things like the Cory Hall 70 were mostly undergrad machines being used
for teaching.  So most of the new work was being done in the Vax.
Bostic got his start as an undergrad moving things back from the Vax to the
machine(s) in Cory and Math/Statistics (which were 11's).  But the machines
being used for new features were definitely the Vax, so all of Graham's
students in languages were doing compiler work (or Linton's debugger) was
all vax based.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20200501/70e5f07b/attachment.htm>

More information about the TUHS mailing list