I have sent a collection of bug fixes and enhancements for the
4.2BSD debugger "dbx" to net.sources.  These modifications are
in the form of a csh script that runs ex on the various source
files and changes them appropriately.  It was generated by doing
a "diff" on the current version of dbx with that distributed with 4.2.

To install the changes, create a directory for new version of dbx and
copy into it the 4.2 dbx source.  Then run the csh script to change
the source.  Afterward, use "make" to create a new executable dbx.

In addition to the dbx source changes, I have created a small collection
of test cases for Modula-2 and C.  These are being sent to net.sources
in a separate message.  They include a makefile to drive the testing
with comparisons done against expected output.

The major effort has been to add support into dbx for Modula-2
in conjunction with the compiler developed at DEC Western Research Lab.
As a side effect, many problems handling C programs have also been
fixed, including

     -	the "call" command (including string parameters, which a fix
	sent to the net does not handle correctly)
     -	using floats
     -	declarations within blocks
     -	many (not so) subtle problems with signals
	(e.g., the sleep infinite loop)
     -	printing bit fields less than a byte long that cross a byte boundary
     -  handling read-only strings (cc -R)

The following commands have been added:
    up [count]
	Moves the current function count levels toward the top of the stack.
	The default count is 1.  The current function is used when resolving
	names, thus using "up" it is possible to change the current scope.
	This is sometimes more convenient than using the "func" command, and
	also works with recursive calls whereas "func" doesn't.

    down [count]
	Same as "up", except moving toward the bottom of the stack.

    return [procedure]
	Continues until a return to the given procedure is executed,
	or if none is specified it continues until a return from the
	current procedure is executed.

    rerun [args] [< file] [> file]
	Same as the original "run" command in that if no arguments are
	specified it uses the previous argument list.  The "run" command
	has been changed to always reset the argument list.

The following minor changes have been made:

     -	the "delete" command now takes a list of events, as in "delete 1 2 3"
     -	the root scope is now referred to as "." rather than using the
	name of the object file

Unfortunately, support for Pascal has NOT been added and specific problems
with Fortran support have not be attacked.

Problems, comments, and questions to me at "linton@shasta" on the ARPANET,
or "Shasta!linton" via UUCP.  The addresses "linton@berkeley" and
"ucbvax!linton" also work.  The "gripe" command within dbx also sends
to me.  Mail systems permitting, I reply to mail about dbx, but I do not
guarantee that I will have time to fix bugs.

	Mark Linton
	Stanford University
