Date: Mon, 9 Aug 1999 11:12:52 +0300 (IDT) From: Eli Zaretskii X-Sender: eliz AT is To: "S. M. Halloran" cc: djgpp AT delorie DOT com, Robert Hoehne Subject: Re: ANNOUNCE: GDB 4.18 for DJGPP In-Reply-To: <199908051104.OAA23633@ankara.Foo.COM> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk 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? ;-)