The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Paul Ruizendaal <pnr@planet.nl>
To: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] SDB debugger
Date: Sat, 2 May 2020 22:16:06 +0200	[thread overview]
Message-ID: <21F16C75-62AB-422A-A43F-981407E11434@planet.nl> (raw)
In-Reply-To: <CAGfO01xewgGGT7Bdrgobto+hvNbK5=GorNhUhjBHEkq4qRBwVg@mail.gmail.com>

Thanks, all, for that input.

The ddt debugger appears to be a fork of 5th edition cdb. It survived in the Interdata 7/32 port:
https://www.tuhs.org/cgi-bin/utree.pl?file=Interdata732/usr/source/chicago
It appears to have originated from Bill Allen at the Naval Postgraduate School.


Some more reading appears to show a much more gradual development than I first thought. Working along Doug’s list:

- First there was db, which claims to be loosely based on DEC’s ODT in its man page. Written in assembler.

- Then there is cdb, a rewrite in C, as from 3rd edition. Judging from the man pages, in 3rd and 4th edition it is a mostly incomplete project.

- The first reasonably complete version of cdb appears in 5th edition. It only handles “normal” symbols (see below for “normal”). The ddt debugger forks from this version, presumably to fill in some missing features (e.g. access to non-C identifiers, single stepping, etc.; I have not done a full feature comparison).

- In 6th edition “pseudo” symbols are introduced: symbols starting with a tilde that provide names for auto and register variables. The cdb debugger is updated to allow references to local variables using a “procname:varname” syntax. The ddt debugger picked this up as well. It is a first step towards the stabs format.

I would assume that db and cdb are the work of dmr/ken.

- In 7th edition there is the new adb, by Steve Bourne. Main focus of adb appears to have been portability more than major new features. Again, I have not compared the feature sets of ddt and adb to see if there was an influence.

- In 32V the symbol format is changed: (i) the “tilde hack” is replaced by a new assembler pseudo op “.stabs”; (ii) this is then used to include more pseudo symbols, for line numbers, for file names, etc.; (iii) the symbol struct is extended with a field to hold the symbol's type. It is essentially stabs, but with 8 char names. A new source level debugger, sdb, allows source level debugging. Its command language is the first to feel like a gdb ancestor. Author Howard Katseff.

The dbx debugger appears to stand on the shoulders of sdb, and gdb on the shoulders of dbx.

In 8th edition there are 3 debuggers: adb, sdb and pi (for use with the Blit).



> On 2 May 2020, at 02:49, Noel Hunt <noel.hunt@gmail.com> wrote:
> 
> When it comes to Eight Edition, please don't forget Tom Cargill's
> 'pi'. There was also a version I believe that was used as the
> debugger for programs on the Blit/Jerq; it seems to be known as
> '4pi' in the source.
> 
> 
> On Sat, May 2, 2020 at 6:49 AM Paul Ruizendaal <pnr@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’
> 
> - On 7th edition it was ‘adb’, a rewrite / evolution from ‘cdb’
> 
> - In 32V a new debugger appears, ‘sdb’. 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.
> 
> 
> 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?
> 
> (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?
> 
> 
> 


  parent reply	other threads:[~2020-05-02 20:16 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 20:48 Paul Ruizendaal
2020-05-01 21:57 ` Clem Cole
2020-05-02  9:10   ` Paul Ruizendaal
2020-05-02 16:04     ` Clem Cole
2020-05-01 23:05 ` Jeremy C. Reed
2020-05-02  0:49 ` Noel Hunt
2020-05-02  1:22   ` Rob Pike
2020-05-02  3:49     ` Noel Hunt
2020-05-02 20:16   ` Paul Ruizendaal [this message]
2020-05-03  6:58     ` arnold
2020-05-03 16:13     ` Clem Cole
2020-05-03 16:53       ` Henry Bent
2020-05-03 17:06         ` Henry Bent
2020-05-03 17:13       ` Henry Bent
2020-05-03 20:26         ` Clem Cole
2020-05-05  0:22           ` [TUHS] DEC Compilers (was: " Win Treese
2020-05-05 17:36             ` Paul Winalski
2020-05-05 18:53               ` Dr Iain Maoileoin
2020-05-05 21:59               ` Dan Cross
2020-05-05 21:49             ` Henry Bent
2020-05-03 17:35       ` [TUHS] " Paul Winalski
2020-05-03 21:27       ` Paul Ruizendaal
2020-05-12  4:15 ` Dave Horsfall
2020-05-02  2:52 Doug McIlroy
2020-05-02 17:45 ` Larry McVoy
2020-05-03 16:16   ` Rich Morin
2020-05-12  4:36     ` Dave Horsfall
2020-05-03  2:21 Norman Wilson
2020-05-03  2:41 ` Larry McVoy
2020-05-03  7:14   ` arnold
2020-05-03  3:05 ` Rob Pike

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=21F16C75-62AB-422A-A43F-981407E11434@planet.nl \
    --to=pnr@planet.nl \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).