[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GDB 6.0 Released!

From: Andrew Cagney
Subject: GDB 6.0 Released!
Date: Mon, 06 Oct 2003 14:16:38 -0400

                        GDB 6.0 released!

Version 6.0 of GDB, the GNU Debugger, is now available via anonymous
FTP.  GDB is a source-level debugger for C, C++, Pascal, Objective-C
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 Unix and Microsoft Windows

You can download GDB from Project GNU's FTP server in the directory:

The previous version, 5.3, was released roughly 10 months ago; and in
that time several new features have been added and many bugs have been
fixed.  The details are below.  In addition, a number of late breaking
problems have been identified and they are also mentioned below.

The vital stats: 

        Size      md5sum                            Name
        15689454  e2314b7c9c7670b5384deb90701446f4  gdb-6.0.tar.gz

There is a web page for GDB at: 

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.

Many people have contributed to this release.  Thanks to everybody for
the help!

Keep those fixes and improvements coming in! (See

       Andrew Cagney
       on behalf of the GDB Developers.

*** Changes in GDB 6.0:

* Objective-C

Support for debugging the Objective-C programming language has been
integrated into GDB.

* New backtrace mechanism (includes DWARF 2 Call Frame Information).

DWARF 2's Call Frame Information makes available compiler generated
information that more exactly describes the program's run-time stack.
By using this information, GDB is able to provide more robust stack

The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets
have been updated to use a new backtrace mechanism which includes
DWARF 2 CFI support.

* Hosted file I/O.

GDB's remote protocol has been extended to include support for hosted
file I/O (where the remote target uses GDB's file system).  See GDB's
remote protocol documentation for details.

* All targets using the new architecture framework.

All of GDB's targets have been updated to use the new internal
architecture framework.  The way is now open for future GDB releases
to include cross-architecture native debugging support (i386 on amd64,
ppc32 on ppc64).

* GNU/Linux's Thread Local Storage (TLS)

GDB now includes support for for the GNU/Linux implementation of
per-thread variables.

* GNU/Linux's Native POSIX Thread Library (NPTL)

GDB's thread code has been updated to work with either the new
GNU/Linux NPTL thread library or the older "LinuxThreads" library.

* Separate debug info.

GDB, in conjunction with BINUTILS, now supports a mechanism for
automatically loading debug information from a separate file.  Instead
of shipping full debug and non-debug versions of system libraries,
system integrators can now instead ship just the stripped libraries
and optional debug files.

* DWARF 2 Location Expressions

DWARF 2 Location Expressions allow the compiler to more completely
describe the location of variables (even in optimized code) to the

GDB now includes preliminary support for location expressions (support
for DW_OP_piece is still missing).

* Java

A number of long standing bugs that caused GDB to die while starting a
Java application have been fixed.  GDB's Java support is now
considered "useable".

* GNU/Linux support for fork, vfork, and exec.

The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode"
commands are now implemented for GNU/Linux.  They require a 2.5.x or later

* GDB supports logging output to a file

There are two new commands, "set logging" and "show logging", which can be
used to capture GDB's output to a file.

* The meaning of "detach" has changed for gdbserver

The "detach" command will now resume the application, as documented.  To
disconnect from gdbserver and leave it stopped, use the new "disconnect"

* d10v, m68hc11 `regs' command deprecated

The `info registers' command has been updated so that it displays the
registers using a format identical to the old `regs' command.

* Profiling support

A new command, "maint set profile on/off", has been added.  This command can
be used to enable or disable profiling while running GDB, to profile a
session or a set of commands.  In addition there is a new configure switch,
"--enable-profiling", which will cause GDB to be compiled with profiling
data, for more informative profiling results.

* Default MI syntax changed to "mi2".

The default MI (machine interface) syntax, enabled by the command line
option "-i=mi", has been changed to "mi2".  The previous MI syntax,
"mi1", can be enabled by specifying the option "-i=mi1".

Support for the original "mi0" syntax (included in GDB 5.0) has been

Fix for gdb/192: removed extraneous space when displaying frame level.
Fix for gdb/672: update changelist is now output in mi list format.
Fix for gdb/702: a -var-assign that updates the value now shows up
                 in a subsequent -var-update.

* New native configurations.

FreeBSD/amd64                                   x86_64-*-freebsd*

* Multi-arched targets.

HP/PA HPUX11                                    hppa*-*-hpux*
Mitsubishi M32R/D w/simulator                   m32r-*-elf*

* OBSOLETE configurations and files

Configurations that have been declared obsolete in this release have
been commented out.  Unless there is activity to revive these
configurations, the next release of GDB will have their sources
permanently REMOVED.

Z8000 simulator                         z8k-zilog-none    or z8ksim
Matsushita MN10200 w/simulator                  mn10200-*-*
H8/500 simulator                        h8500-hitachi-hms or h8500hms
HP/PA running BSD                               hppa*-*-bsd*
HP/PA running OSF/1                             hppa*-*-osf*
HP/PA Pro target                                hppa*-*-pro*
PMAX (MIPS) running Mach 3.0                    mips*-*-mach3*
Sequent family                                  i[3456]86-sequent-sysv4*
Tsqware Sparclet                                sparclet-*-*
Fujitsu SPARClite                       sparclite-fujitsu-none  or  sparclite

* REMOVED configurations and files

V850EA ISA                              
Motorola Delta 88000 running Sys V              m88k-motorola-sysv  or  delta88
IBM AIX PS/2                                    i[3456]86-*-aix
i386 running Mach 3.0                           i[3456]86-*-mach3*
i386 running Mach                               i[3456]86-*-mach*
i386 running OSF/1                              i[3456]86-*osf1mk*
HP/Apollo 68k Family                            m68*-apollo*-sysv*,
                                                m68*-hp-bsd*, m68*-hp-hpux*
Argonaut Risc Chip (ARC)                        arc-*-*
Mitsubishi D30V                                 d30v-*-*
Fujitsu FR30                                    fr30-*-elf*
OS/9000                                         i[34]86-*-os9k
I960 with MON960                                i960-*-coff

* MIPS $fp behavior changed

The convenience variable $fp, for the MIPS, now consistently returns
the address of the current frame's base.  Previously, depending on the
context, $fp could refer to either $sp or the current frame's base
address.  See ``8.10 Registers'' in the manual ``Debugging with GDB:
The GNU Source-Level Debugger''.


                        Known problems in GDB 6.0

                See also:


GDB's SPARC, MIPS and PowerPC targets, in 6.0, have not been updated
to use the new frame mechanism.

People encountering problems with these targets should consult GDB's
web pages and mailing lists ( to see
if there is an update.


GDB's ARM target, in 6.0, has not been updated to use the new frame

Fortunatly the ARM target, in the GDB's mainline sources, has been
updated so people encountering problems should consider downloading a
more current GDB (

gdb/1091: Constructor breakpoints ignored
gdb/1193: g++ 3.3 creates multiple constructors: gdb 5.3 can't set breakpoints

When gcc 3.x compiles a C++ constructor or C++ destructor, it generates
2 or 3 different versions of the object code.  These versions have
unique mangled names (they have to, in order for linking to work), but
they have identical source code names, which leads to a great deal of
confusion.  Specifically, if you set a breakpoint in a constructor or a
destructor, gdb will put a breakpoint in one of the versions, but your
program may execute the other version.  This makes it impossible to set
breakpoints reliably in constructors or destructors.

gcc 3.x generates these multiple object code functions in order to
implement virtual base classes.  gcc 2.x generated just one object code
function with a hidden parameter, but gcc 3.x conforms to a multi-vendor
ABI for C++ which requires multiple object code functions.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]