4.4BSD/usr/src/old/dbx/History

Dbx is a descendant of pdx, a debugger that I wrote to work with
Berkeley Pascal as my master's project at Berkeley.  Pdx was released
in the fall of 1981.  While pdx was being completed, a version with
different machine, process, and runtime modules was developed to run
on VAX compiled code.

In the spring of '82, the use of the string table for storing type encodings
was designed and the VAX C compiler was modified to generate the new
symbol information.  In the fall of '82, the modifications to the C compiler
and a new version of the debugger, by now named dbx, were installed locally
at Berkeley.  In early '83, dbx was installed on the 4.1c release of
Berkeley UNIX.

In the spring of '83, Alistair Fyfe, a graduate student at Berkeley,
modified dbx and the f77 compiler to enable dbx to debug FORTRAN programs.
During this time, dbx was also ported to the Sun.

In the fall of '83, dbx was released with 4.2.  During that winter and
the spring of '84, dbx was extended to work with Modula-2 in conjunction
with the development of the Modula-2 compiler at DEC Western Research Lab.
In June of '84, a collection of updates reflected the current status
of dbx, including bug fixes and support for Modula-2, was sent to net.sources.

Below are some short notes on versions that have been installed since then.

	Mark Linton


6/1	2.0	release to net.sources

internal releases
7/2	2.5	rewrote name resolution, particularly for procedure nesting
7/17	2.6	single stepping through certain kinds of loops,
		tracing through code compiled for profiling
		support for Pascal installed on the side but not tested
		    (nor is the associated support in pc)
7/19	2.7	open arrays
7/31	2.8	print <proc>, qualified names in backtrace,
		curevent to avoid some "missing trids",
8/1	2.9	increased maximum number of arguments from 100 to 1000,
		increased maximum line size to 1024 to 10240
8/23	2.10	support for Pascal and test cases for modified pc,
		code for -k (kernel debugging) added but not debugged,
		qualified names in traces
		no longer fatal to not link with -g -- assumes first global
		    is equivalent to -lg
		better resolution of externals
		reports when a core image is being used
8/25	2.11	fixed some problems with Pascal, e.g., enumerations,
		increased maximum number of functions from 1001 to 4001,
		fixed a nasty bug for C (and elsewhere?) having to do
		    with processing types for "known" global variables,
		changed the syntax/semantics of "print x" where x is
		    a function so that it no longer tries to call it --
		    "print x()" must be used instead
		added/fixed syntax for type renaming so that term's can
		    be renamed
8/26	2.12	fixed problem with multiple imports (EXTREF's),
		added dynamic name lookup if static lookup fails before picking
		    at random
8/27	2.13	fixed problem in dynamic lookup that caused an infinite loop,
		if it picks one at random it now prints a message specifying
		    the fully qualified name of the symbol that was picked
8/27	2.15	first attack at fixing problem with type renames (loopholes)
9/16	2.16	major attempt to fix loopholes by revising node representation
		    and command grammar -- basic need was to make more sense
		    out of when to do indirection
		changed identifier resolution in object and stabstring so
		    that globals are no longer in top scope (since they could
		    conflict with a module name)
9/18	2.17	another problem related to expressions having to do with
		    handling pointers to arrays
	 ...
1/1	2.25	made more inroads into kernel debugging,
		added macros (aliases with arguments), and settable variables
1/7	2.26	fixed bug where only mapped first address of block read,
		    have to map each page (still wrong though)
1/13	2.27	fixed some user reported problems -- down in runtime
		    didn't work correctly if "curframe" wasn't already set,
		the process instruction cache had to be flushed when
		    a process is killed (this caused a problem when an
		    object file was remade)
1/14	2.28	fixed problem with mapping addresses under -k,
		added -c option for command files other than .dbxinit
		fixed occasional problem with testing for end of stack frames
		    (symptom was infinite loop calling nextframe)
1/15	2.29	fixed problem with printing dynamic arrays inside aggregates
		fixed type compatibility for builtin true and false