GDB 7.0 released
From: | Joel Brobecker <brobecker-AT-adacore.com> | |
To: | gdb-announce-AT-sourceware.org | |
Subject: | GDB 7.0 released! | |
Date: | Tue, 6 Oct 2009 10:40:09 -0700 |
GDB 7.0 released! Release 7.0 of GDB, the GNU Debugger, is now available via anonymous FTP. GDB is a source-level debugger for Ada, C, C++, Objective-C, Pascal and many other languages. GDB can target (i.e., debug programs running on) more than a dozen different processor architectures, and GDB itself can run on most popular GNU/Linux, Unix and Microsoft Windows variants. You can download GDB from the GNU FTP server in the directory: ftp://ftp.gnu.org/gnu/gdb The vital stats: Size md5sum Name 17MB 3386a7b69c010785c920ffc1e9cb890a gdb-7.0.tar.bz2 23MB 67b4144db385620d7b93f7b0c26800f7 gdb-7.0.tar.gz There is a web page for GDB at: http://www.gnu.org/software/gdb/ That page includes information about GDB mailing lists (an announcement mailing list, developers discussion lists, etc.), details on how to access GDB's CVS repository, locations for development snapshots, preformatted documentation, and links to related information around the net. We will put errata notes and host-specific tips for this release on-line as any problems come up. All mailing lists archives are also browsable via the web. GDB 7.0 is packed with new platforms being supported, major new features, enhancements and bug fixes. For a complete list and more details on each iteam, please see the gdb/NEWS file. The new native configurations being supported are: * x86/x86_64 Darwin * x86_64 MinGW Support for the following targets has been added: * Lattice Mico32 * x86/x86_64 DICOS * S+core 3 * The remote stub now supports x86 Windows CE The major new features are: * Python scripting support * Reverse debugging, Process record and replay * Non-stop debugging * Multi-architecture debugging * Multi-inferior, multi-process debugging It also features many enhancements and bug fixes, including: * GDB now has an interface for JIT compilation * Tracepoints may now be conditional * Multi-byte and wide character set support * New /r and /m modifiers for the "disassemble" command * Automatic retrieval of shared library files from remote targets * Inlined functions are now supported * New remote protocal packets * GDB is now able to read compressed debug sections * Thread switching is now supported on Tru64 * Ada task switching is now supported * New features in gdbserver, the GDB remote stub * New command to stop execution when a system call is made -- Joel
Posted Oct 8, 2009 13:34 UTC (Thu)
by arekm (guest, #4846)
[Link] (4 responses)
Posted Oct 8, 2009 13:49 UTC (Thu)
by coriordan (guest, #7544)
[Link] (2 responses)
Posted Oct 8, 2009 13:52 UTC (Thu)
by arekm (guest, #4846)
[Link] (1 responses)
Posted Oct 8, 2009 13:59 UTC (Thu)
by rahulsundaram (subscriber, #21946)
[Link]
Posted Oct 8, 2009 14:50 UTC (Thu)
by mjw (subscriber, #16740)
[Link]
"# Fedora patches. Fedora has a big backlog of gdb patches. We will rebase these to a more recent gdb, integrate them into archer, and send them upstream as appropriate."
Posted Oct 8, 2009 13:47 UTC (Thu)
by coriordan (guest, #7544)
[Link] (6 responses)
Glad to hear it's gotten done.
Posted Oct 8, 2009 22:32 UTC (Thu)
by nix (subscriber, #2304)
[Link] (4 responses)
Posted Oct 8, 2009 23:32 UTC (Thu)
by MichaelSnyder (guest, #61265)
[Link] (3 responses)
Posted Oct 9, 2009 8:43 UTC (Fri)
by nix (subscriber, #2304)
[Link] (2 responses)
Posted Oct 9, 2009 18:35 UTC (Fri)
by MichaelSnyder (guest, #61265)
[Link] (1 responses)
Posted Oct 9, 2009 22:46 UTC (Fri)
by nix (subscriber, #2304)
[Link]
Posted Oct 8, 2009 22:36 UTC (Thu)
by nix (subscriber, #2304)
[Link]
(think 'persistent after-the-fact remote debugging')
Posted Oct 8, 2009 16:44 UTC (Thu)
by ikm (guest, #493)
[Link] (17 responses)
Posted Oct 8, 2009 18:02 UTC (Thu)
by JoeBuck (subscriber, #2330)
[Link] (3 responses)
Posted Oct 8, 2009 18:30 UTC (Thu)
by pranith (subscriber, #53092)
[Link] (2 responses)
Posted Oct 8, 2009 22:55 UTC (Thu)
by MichaelSnyder (guest, #61265)
[Link] (1 responses)
Posted Oct 9, 2009 13:56 UTC (Fri)
by cry_regarder (subscriber, #50545)
[Link]
Cry
Posted Oct 8, 2009 19:47 UTC (Thu)
by quotemstr (subscriber, #45331)
[Link] (12 responses)
* which is practically identical to the fastcall convention used by some C code.
Posted Oct 8, 2009 20:23 UTC (Thu)
by oak (guest, #2786)
[Link]
For example exception handling. Exception handler can crash when stack
Project Archer's devel branch page lists some other issues they deal with.
Posted Oct 8, 2009 21:59 UTC (Thu)
by ikm (guest, #493)
[Link]
Posted Oct 8, 2009 22:33 UTC (Thu)
by nix (subscriber, #2304)
[Link] (4 responses)
Posted Oct 9, 2009 1:50 UTC (Fri)
by quotemstr (subscriber, #45331)
[Link] (3 responses)
But what's this double-constructor thing?
Posted Oct 9, 2009 9:05 UTC (Fri)
by nix (subscriber, #2304)
[Link] (1 responses)
Regarding the constructors, the C++ ABI defines three types of constructor: complete object constructors, base object constructors, and complete object allocating constructors (but the latter type is optional and GCC never generates them). GCC somewhat confusingly calls the former two types 'in-charge' and 'not-in-charge' constructors, and these are the names GDB uses for them.
Complete object constructors are supposed to dig out the appropriate VTT pointer during virtual inheritance and call the base object constructor: however, released GCCs instead just clone the entire function body (see gcc/cp/class.c:build_clone()). When he implemented this, Mark Mitchell mentioned that
(Mind you, GDB has to handle this anyway even if the in-charge constructor does change to call the not-in-charge one: GCC can do cloning of arbitrary functions now to aid constant propagation and inlining, even across translation unit boundaries if whole-program optimization is on, and I'd expect that to confuse GDB in exactly the same way as in-charge/not-in-charge constructors always have. I haven't checked to see if this has been fixed in the last year.)
Posted Oct 9, 2009 9:38 UTC (Fri)
by sspr (guest, #39636)
[Link]
Posted Oct 9, 2009 15:07 UTC (Fri)
by bronson (subscriber, #4806)
[Link]
Not true. An exception unwinds the stack calling destructors as it goes. Longjmp just restores registers and jumps up the stack. They're very different beasts.
C++ Exception handling is actually quite complex with a number of unintuitive gotchas. Sadly, it's been a great source of compiler bugs too.
Posted Oct 9, 2009 5:14 UTC (Fri)
by njs (subscriber, #40338)
[Link] (4 responses)
IIRC the new Python scripting stuff is supposed to help with this.
Posted Oct 9, 2009 9:07 UTC (Fri)
by nix (subscriber, #2304)
[Link] (3 responses)
Posted Oct 15, 2009 8:26 UTC (Thu)
by elanthis (guest, #6227)
[Link] (2 responses)
GDB needs a big push in the debug info department. It could use a big push in the compile time error quality, too, for that matter.
Posted Oct 15, 2009 8:56 UTC (Thu)
by jwakely (subscriber, #60262)
[Link] (1 responses)
GCC has to "slap in" the full type name for the linker, typedefs do not affect the name the linker uses.
GDB needs a big push in the debug info department.
You mean GCC, right? It's getting a big push, see http://gcc.gnu.org/wiki/Var_Tracking_Assignments
It could use a big push in the compile time error quality, too, for that matter.
See http://gcc.gnu.org/wiki/Better_Diagnostics - although it's easy to say diagnostics should be better, it's a lot harder to suggest specific improvements.
Posted Oct 15, 2009 11:33 UTC (Thu)
by jwakely (subscriber, #60262)
[Link]
... and this isn't true. GDB can show a more useful representation of data structures than simply listing all the bases and members, and that's exactly what the new python pretty printing does.
Posted Oct 8, 2009 19:51 UTC (Thu)
by cventers (guest, #31465)
[Link] (1 responses)
Posted Oct 8, 2009 20:21 UTC (Thu)
by robert_s (subscriber, #42402)
[Link]
Sounds like a great way to trigger and investigate race conditions that you'd never thought of.
Posted Oct 18, 2009 12:16 UTC (Sun)
by MichaelSnyder (guest, #61265)
[Link]
GDB 7.0 released
Were those patches used to give GDB the features which it now has in 7.0?
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
http://sourceware.org/gdb/wiki/ProjectArcher
great news about reverse debugging
great news about reverse debugging
really killingly *useful* to developers, which is probably why it got
done :) (it also needs lots of storage, which is probably why it didn't
get done twenty years ago.)
great news about reverse debugging
great news about reverse debugging
great news about reverse debugging
You run gdb on the host, and debug the guest (either user
process or kernel). When you say "reverse-continue" in gdb,
VMware executes the guest backward until it hits a breakpoint
or watchpoint.
great news about reverse debugging
definitely a good decision.)
great news about reverse debugging
GDB 7.0 released
I've had pretty good experiences with gdb 6.8 and C++, certainly a big improvement over earlier versions.
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
The present "reverse debugging" feature set allows you to do reverse-step,
reverse-next, reverse-continue etc., running backward to any breakpoint
or watchpoint, or just stepping backward by a single instruction if you
choose. You're not restricted to stopping only at previously designated
checkpoints.
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
C++ ones have funny symbol names. Assuming you can get past the name
mangling (and the thiscall calling convention*), what's the difference?
has been unwound. A bit tricker to show callers then...
GDB 7.0 released
GDB 7.0 released
overloaded functions, the magic duplicate of every constructor that the
C++ ABI dictates (put a breakpoint on it and likely as not it'd land on
the wrong one)...
Fair enough on exception handling (though if gdb has trouble with that, it'll have trouble with GDB 7.0 released
longjmp
too.)
Forget longjmp. With the debugging information currently supplied in all released GCCs, GDB has trouble with variables that transition between registers and memory more than once (i.e. most of them in complex functions). The var-tracking branch for GCC should fix this, hopefully.
GDB 7.0 released
It would be better to have multiple entry points
into a single routine, but we don't have support for that yet in the
back-end, and we can always change the method used later without
breaking the ABI.
but nobody ever implemented this, so when you set a breakpoint in a constructor it ends up in two places, not one, and this confuses the hell out of most GDBs.
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
GDB 7.0 released
A lot of that is GCC's fault, really. GDB can only present the information present in the debug info, so if GCC is just slapping in the fully expanded instantiated types, then that's all GDB can give the user.
GDB 7.0 released
GDB can only present the information present in the debug info, so if GCC is just slapping in the fully expanded instantiated types, then that's all GDB can give the user.
GDB 7.0 released
GDB 7.0 released
cooler to me. I guess you just have to arrange for the thread to stop at a
time when it's not holding locks the rest of the program depends on :p
GDB 7.0 released
time when it's not holding locks the rest of the program depends on"
GDB 7.0 released
http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial