xref: /original-bsd/old/dbx/History (revision b001ed0c)
1Dbx is a descendant of pdx, a debugger that I wrote to work with
2Berkeley Pascal as my master's project at Berkeley.  Pdx was released
3in the fall of 1981.  While pdx was being completed, a version with
4different machine, process, and runtime modules was developed to run
5on VAX compiled code.
6
7In the spring of '82, the use of the string table for storing type encodings
8was designed and the VAX C compiler was modified to generate the new
9symbol information.  In the fall of '82, the modifications to the C compiler
10and a new version of the debugger, by now named dbx, were installed locally
11at Berkeley.  In early '83, dbx was installed on the 4.1c release of
12Berkeley UNIX.
13
14In the spring of '83, Alistair Fyfe, a graduate student at Berkeley,
15modified dbx and the f77 compiler to enable dbx to debug FORTRAN programs.
16During this time, dbx was also ported to the Sun.
17
18In the fall of '83, dbx was released with 4.2.  During that winter and
19the spring of '84, dbx was extended to work with Modula-2 in conjunction
20with the development of the Modula-2 compiler at DEC Western Research Lab.
21In June of '84, a collection of updates reflected the current status
22of dbx, including bug fixes and support for Modula-2, was sent to net.sources.
23
24Below are some short notes on versions that have been installed since then.
25
26	Mark Linton
27
28
296/1	2.0	release to net.sources
30
31internal releases
327/2	2.5	rewrote name resolution, particularly for procedure nesting
337/17	2.6	single stepping through certain kinds of loops,
34		tracing through code compiled for profiling
35		support for Pascal installed on the side but not tested
36		    (nor is the associated support in pc)
377/19	2.7	open arrays
387/31	2.8	print <proc>, qualified names in backtrace,
39		curevent to avoid some "missing trids",
408/1	2.9	increased maximum number of arguments from 100 to 1000,
41		increased maximum line size to 1024 to 10240
428/23	2.10	support for Pascal and test cases for modified pc,
43		code for -k (kernel debugging) added but not debugged,
44		qualified names in traces
45		no longer fatal to not link with -g -- assumes first global
46		    is equivalent to -lg
47		better resolution of externals
48		reports when a core image is being used
498/25	2.11	fixed some problems with Pascal, e.g., enumerations,
50		increased maximum number of functions from 1001 to 4001,
51		fixed a nasty bug for C (and elsewhere?) having to do
52		    with processing types for "known" global variables,
53		changed the syntax/semantics of "print x" where x is
54		    a function so that it no longer tries to call it --
55		    "print x()" must be used instead
56		added/fixed syntax for type renaming so that term's can
57		    be renamed
588/26	2.12	fixed problem with multiple imports (EXTREF's),
59		added dynamic name lookup if static lookup fails before picking
60		    at random
618/27	2.13	fixed problem in dynamic lookup that caused an infinite loop,
62		if it picks one at random it now prints a message specifying
63		    the fully qualified name of the symbol that was picked
648/27	2.15	first attack at fixing problem with type renames (loopholes)
659/16	2.16	major attempt to fix loopholes by revising node representation
66		    and command grammar -- basic need was to make more sense
67		    out of when to do indirection
68		changed identifier resolution in object and stabstring so
69		    that globals are no longer in top scope (since they could
70		    conflict with a module name)
719/18	2.17	another problem related to expressions having to do with
72		    handling pointers to arrays
73	 ...
741/1	2.25	made more inroads into kernel debugging,
75		added macros (aliases with arguments), and settable variables
761/7	2.26	fixed bug where only mapped first address of block read,
77		    have to map each page (still wrong though)
781/13	2.27	fixed some user reported problems -- down in runtime
79		    didn't work correctly if "curframe" wasn't already set,
80		the process instruction cache had to be flushed when
81		    a process is killed (this caused a problem when an
82		    object file was remade)
831/14	2.28	fixed problem with mapping addresses under -k,
84		added -c option for command files other than .dbxinit
85		fixed occasional problem with testing for end of stack frames
86		    (symptom was infinite loop calling nextframe)
871/15	2.29	fixed problem with printing dynamic arrays inside aggregates
88		fixed type compatibility for builtin true and false
89