Mail Archives: djgpp/1999/08/11/11:44:36
On Thu, 5 Aug 1999, S. M. Halloran wrote:
> Is it possible to list at least the highlights of what changes have
> taken place?
Changes as compared to what? The previous GDB port was of version
4.16, which was a lot of time ago. A lot of water went under the
GDB's bridge during this time, and it is obviously meaningless to try
to compare those two versions, since the official GNU GDB distribution
has also changed a lot. It is impossible to describe all of the
changes; see the file gdb/NEWS in the distribution for the major
changes that the GDB developers regarded as important enough to be
mentioned.
Below is my humble attempt to list some of the new features and
bugfixes that should be important to DJGPP users. Caveat emptor: this
list is not meant to be complete (did I already say it's impossible?),
so don't blame me if you find an important feature I missed. If you
really want to find out the new exciting features, I suggest a nice,
long session reading the manual and typing the various "help"
commands, right after you unzip the distribution.
Please also don't take what's below as an indication that I made it
all happen! Robert Hoehne did most of the hard work of porting GDB,
with lots of help from Pierre Muller and Andris Pavenis who improved
the DJGPP debug support so as to make various GDB features work.
I simply decided to augment Robert's announcement, since I did study
this version of GDB and even made a few small changes (all of them
incorporated in this release). I hope Robert won't mind my small
intervention ;-)
So, here's the list of some of the important news about this port:
* Full support for debugging floating-point programs. You can now
see all the FP registers in both raw and FP format. Try the
command "info float".
* Watchpoints (a.k.a. data breakpoints) now work much better. You
should be able to set data-write breakpoints which will trigger
when some code overwrites a variable. Some bugs are impossible to
find without this feature.
* Support for debugging programs that use signals. You can now catch
signals that happened in the debuggee, decide whether you want the
debuggee to see that signal, deliver signals that didn't really
happen, etc. You can also interrupt the debuggee with Ctrl-C, set
some breakpoints or examine variables, then continue the debuggee
from the same spot where it was interrupted. (Previously, when a
signal happened while the debuggee ran, it would kill the debuggee,
and you couldn't continue debugging it anymore.)
* You can now debug programs that hook hardware interrupts, like
keyboard, timer, etc.
* Support for debugging programs that redirect their standard
handles, or switch them into binary mode. You can now actually say
something like "run < foo > bar" and have this work like you'd
expect. (Previously, redirection from the "run" command was not
supported, and if the debuggee happened to redirect its stdout,
you won't see GDB's output anymore.) "Info terminal" will print
useful information about debuggee's terminal, including raw/cooked
mode and its redirection, if any.
* GDB now uses the termios functions for console I/O. This means
that you can debug graphics programs directly (provided that the
graphics mode is supported by the video BIOS), and apart of some
awkwardness, since GDB's output and the graphics are all mixed up,
you can still see GDB's output. Signals are enabled in GDB's own
code, so you can interrupt GDB with Ctrl-C if you want.
* Lots of bugs with DOS-style file names and DOS text files were
found and fixed. Previously, many file-related commands would fail
if presented with file names that include drive letters etc.,
especially in commands like "cd" and in source file names.
* Support for debugging programs that change their working
directory. GDB now switches between its own directory and the
directory where the debuggee chdir'ed as appropriate, to create an
illusion of two independent processes.
* You can rerun the debuggee any number of times, without restarting
the debugger.
Well, are you convinced yet that this is a significant improvement? ;-)
- Raw text -