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