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