What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 6.1:
+*** Changes since GDB 6.6
+
+* When the Text User Interface (TUI) is not configured, GDB will now
+recognize the -tui command-line option and print a message that the TUI
+is not supported.
+
+* The GDB remote stub, gdbserver, now has lower overhead for high
+frequency signals (e.g. SIGALRM) via the QPassSignals packet.
+
+* GDB for MIPS targets now autodetects whether a remote target provides
+32-bit or 64-bit register values.
+
+* Support for C++ member pointers has been improved.
+
+* GDB now understands XML target descriptions, which specify the
+target's overall architecture. GDB can read a description from
+a local file or over the remote serial protocol.
+
+* Arrays of explicitly SIGNED or UNSIGNED CHARs are now printed as arrays
+of numbers.
+
+* Target descriptions can now describe target-specific registers,
+for architectures which have implemented the support (currently
+only ARM and MIPS).
+
+* GDB and the GDB remote stub, gdbserver, now support the XScale
+iWMMXt coprocessor.
+
+* The GDB remote stub, gdbserver, has been updated to support
+ARM Windows CE (mingw32ce) debugging, and GDB Windows CE support
+has been rewritten to use the standard GDB remote protocol.
+
+* GDB can now step into C++ functions which are called through thunks.
+
+* GDB for the Cell/B.E. SPU now supports overlay debugging.
+
+* New commands
+
+set remoteflow
+show remoteflow
+ Enable or disable hardware flow control (RTS/CTS) on the serial port
+ when debugging using remote targets.
+
+set mem inaccessible-by-default
+show mem inaccessible-by-default
+ If the target supplies a memory map, for instance via the remote
+ protocol's "qXfer:memory-map:read" packet, setting this variable
+ prevents GDB from accessing memory outside the memory map. This
+ is useful for targets with memory mapped registers or which react
+ badly to accesses of unmapped address space.
+
+set breakpoint auto-hw
+show breakpoint auto-hw
+ If the target supplies a memory map, for instance via the remote
+ protocol's "qXfer:memory-map:read" packet, setting this variable
+ lets GDB use hardware breakpoints automatically for memory regions
+ where it can not use software breakpoints. This covers both the
+ "break" command and internal breakpoints used for other commands
+ including "next" and "finish".
+
+catch exception
+catch exception unhandled
+ Stop the program execution when Ada exceptions are raised.
+
+catch assert
+ Stop the program execution when an Ada assertion failed.
+
+set sysroot
+show sysroot
+ Set an alternate system root for target files. This is a more
+ general version of "set solib-absolute-prefix", which is now
+ an alias to "set sysroot".
+
+info spu
+ Provide extended SPU facility status information. This set of
+ commands is available only when debugging the Cell/B.E. SPU
+ architecture.
+
+* New native configurations
+
+OpenBSD/sh sh*-*openbsd*
+
+set tdesc filename
+unset tdesc filename
+show tdesc filename
+ Use the specified local file as an XML target description, and do
+ not query the target for its built-in description.
+
+* New targets
+
+OpenBSD/sh sh*-*-openbsd*
+MIPS64 GNU/Linux (gdbserver) mips64-linux-gnu
+Toshiba Media Processor mep-elf
+
+* New remote packets
+
+QPassSignals:
+ Ignore the specified signals; pass them directly to the debugged program
+ without stopping other threads or reporting them to GDB.
+
+qXfer:features:read:
+ Read an XML target description from the target, which describes its
+ features.
+
+qXfer:spu:read:
+qXfer:spu:write:
+ Read or write contents of an spufs file on the target system. These
+ packets are available only on the Cell/B.E. SPU architecture.
+
+* Removed targets
+
+Support for these obsolete configurations has been removed.
+
+alpha*-*-osf1*
+alpha*-*-osf2*
+d10v-*-*
+hppa*-*-hiux*
+i[34567]86-ncr-*
+i[34567]86-*-dgux*
+i[34567]86-*-lynxos*
+i[34567]86-*-netware*
+i[34567]86-*-sco3.2v5*
+i[34567]86-*-sco3.2v4*
+i[34567]86-*-sco*
+i[34567]86-*-sysv4.2*
+i[34567]86-*-sysv4*
+i[34567]86-*-sysv5*
+i[34567]86-*-unixware2*
+i[34567]86-*-unixware*
+i[34567]86-*-sysv*
+i[34567]86-*-isc*
+m68*-cisco*-*
+m68*-tandem-*
+mips*-*-pe
+rs6000-*-lynxos*
+sh*-*-pe
+
+* Other removed features
+
+target abug
+target cpu32bug
+target est
+target rom68k
+
+ Various m68k-only ROM monitors.
+
+target hms
+target e7000
+target sh3
+target sh3e
+
+ Various Renesas ROM monitors and debugging interfaces for SH and
+ H8/300.
+
+target ocd
+
+ Support for a Macraigor serial interface to on-chip debugging.
+ GDB does not directly support the newer parallel or USB
+ interfaces.
+
+DWARF 1 support
+
+ A debug information format. The predecessor to DWARF 2 and
+ DWARF 3, which are still supported.
+
+Support for the HP aCC compiler on HP-UX/PA-RISC
+
+ SOM-encapsulated symbolic debugging information, automatic
+ invocation of pxdb, and the aCC custom C++ ABI. This does not
+ affect HP-UX for Itanium or GCC for HP-UX/PA-RISC. Code compiled
+ with aCC can still be debugged on an assembly level.
+
+MIPS ".pdr" sections
+
+ A MIPS-specific format used to describe stack frame layout
+ in debugging information.
+
+Scheme support
+
+ GDB could work with an older version of Guile to debug
+ the interpreter and Scheme programs running in it.
+
+set mips stack-arg-size
+set mips saved-gpreg-size
+
+ Use "set mips abi" to control parameter passing for MIPS.
+
+*** Changes in GDB 6.6
+
+* New targets
+
+Xtensa xtensa-elf
+Cell Broadband Engine SPU spu-elf
+
+* GDB can now be configured as a cross-debugger targeting native Windows
+(mingw32) or Cygwin. It can communicate with a remote debugging stub
+running on a Windows system over TCP/IP to debug Windows programs.
+
+* The GDB remote stub, gdbserver, has been updated to support Windows and
+Cygwin debugging. Both single-threaded and multi-threaded programs are
+supported.
+
+* The "set trust-readonly-sections" command works again. This command was
+broken in GDB 6.3, 6.4, and 6.5.
+
+* The "load" command now supports writing to flash memory, if the remote
+stub provides the required support.
+
+* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no
+longer requires symbolic debug information (e.g. DWARF-2).
+
+* New commands
+
+set substitute-path
+unset substitute-path
+show substitute-path
+ Manage a list of substitution rules that GDB uses to rewrite the name
+ of the directories where the sources are located. This can be useful
+ for instance when the sources were moved to a different location
+ between compilation and debugging.
+
+set trace-commands
+show trace-commands
+ Print each CLI command as it is executed. Each command is prefixed with
+ a number of `+' symbols representing the nesting depth.
+ The source command now has a `-v' option to enable the same feature.
+
+* REMOVED features
+
+The ARM Demon monitor support (RDP protocol, "target rdp").
+
+Kernel Object Display, an embedded debugging feature which only worked with
+an obsolete version of Cisco IOS.
+
+The 'set download-write-size' and 'show download-write-size' commands.
+
+* New remote packets
+
+qSupported:
+ Tell a stub about GDB client features, and request remote target features.
+ The first feature implemented is PacketSize, which allows the target to
+ specify the size of packets it can handle - to minimize the number of
+ packets required and improve performance when connected to a remote
+ target.
+
+qXfer:auxv:read:
+ Fetch an OS auxilliary vector from the remote stub. This packet is a
+ more efficient replacement for qPart:auxv:read.
+
+qXfer:memory-map:read:
+ Fetch a memory map from the remote stub, including information about
+ RAM, ROM, and flash memory devices.
+
+vFlashErase:
+vFlashWrite:
+vFlashDone:
+ Erase and program a flash memory device.
+
+* Removed remote packets
+
+qPart:auxv:read:
+ This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5
+ used it, and only gdbserver implemented it.
+
+*** Changes in GDB 6.5
+
+* New targets
+
+Renesas M32C/M16C m32c-elf
+
+Morpho Technologies ms1 ms1-elf
+
+* New commands
+
+init-if-undefined Initialize a convenience variable, but
+ only if it doesn't already have a value.
+
+The following commands are presently only implemented for native GNU/Linux:
+
+checkpoint Save a snapshot of the program state.
+
+restart <n> Return the program state to a
+ previously saved state.
+
+info checkpoints List currently saved checkpoints.
+
+delete-checkpoint <n> Delete a previously saved checkpoint.
+
+set|show detach-on-fork Tell gdb whether to detach from a newly
+ forked process, or to keep debugging it.
+
+info forks List forks of the user program that
+ are available to be debugged.
+
+fork <n> Switch to debugging one of several
+ forks of the user program that are
+ available to be debugged.
+
+delete-fork <n> Delete a fork from the list of forks
+ that are available to be debugged (and
+ kill the forked process).
+
+detach-fork <n> Delete a fork from the list of forks
+ that are available to be debugged (and
+ allow the process to continue).
+
+* New architecture
+
+Morpho Technologies ms2 ms1-elf
+
+* Improved Windows host support
+
+GDB now builds as a cross debugger hosted on i686-mingw32, including
+native console support, and remote communications using either
+network sockets or serial ports.
+
+* Improved Modula-2 language support
+
+GDB can now print most types in the Modula-2 syntax. This includes:
+basic types, set types, record types, enumerated types, range types,
+pointer types and ARRAY types. Procedure var parameters are correctly
+printed and hexadecimal addresses and character constants are also
+written in the Modula-2 syntax. Best results can be obtained by using
+GNU Modula-2 together with the -gdwarf-2 command line option.
+
+* REMOVED features
+
+The ARM rdi-share module.
+
+The Netware NLM debug server.
+
+*** Changes in GDB 6.4
+
+* New native configurations
+
+OpenBSD/arm arm*-*-openbsd*
+OpenBSD/mips64 mips64-*-openbsd*
+
+* New targets
+
+Morpho Technologies ms1 ms1-elf
+
+* New command line options
+
+--batch-silent As for --batch, but totally silent.
+--return-child-result The debugger will exist with the same value
+ the child (debugged) program exited with.
+--eval-command COMMAND, -ex COMMAND
+ Execute a single GDB CLI command. This may be
+ specified multiple times and in conjunction
+ with the --command (-x) option.
+
+* Deprecated commands removed
+
+The following commands, that were deprecated in 2000, have been
+removed:
+
+ Command Replacement
+ set|show arm disassembly-flavor set|show arm disassembler
+ othernames set arm disassembler
+ set|show remotedebug set|show debug remote
+ set|show archdebug set|show debug arch
+ set|show eventdebug set|show debug event
+ regs info registers
+
+* New BSD user-level threads support
+
+It is now possible to debug programs using the user-level threads
+library on OpenBSD and FreeBSD. Currently supported (target)
+configurations are:
+
+FreeBSD/amd64 x86_64-*-freebsd*
+FreeBSD/i386 i386-*-freebsd*
+OpenBSD/i386 i386-*-openbsd*
+
+Note that the new kernel threads libraries introduced in FreeBSD 5.x
+are not yet supported.
+
+* New support for Matsushita MN10300 w/sim added
+(Work in progress). mn10300-elf.
+
+* REMOVED configurations and files
+
+VxWorks and the XDR protocol *-*-vxworks
+Motorola MCORE mcore-*-*
+National Semiconductor NS32000 ns32k-*-*
+
+* New "set print array-indexes" command
+
+After turning this setting "on", GDB prints the index of each element
+when displaying arrays. The default is "off" to preserve the previous
+behavior.
+
+* VAX floating point support
+
+GDB now supports the not-quite-ieee VAX F and D floating point formats.
+
+* User-defined command support
+
+In addition to using $arg0..$arg9 for argument passing, it is now possible
+to use $argc to determine now many arguments have been passed. See the
+section on user-defined commands in the user manual for more information.
+
+*** Changes in GDB 6.3:
+
+* New command line option
+
+GDB now accepts -l followed by a number to set the timeout for remote
+debugging.
+
+* GDB works with GCC -feliminate-dwarf2-dups
+
+GDB now supports a more compact representation of DWARF-2 debug
+information using DW_FORM_ref_addr references. These are produced
+by GCC with the option -feliminate-dwarf2-dups and also by some
+proprietary compilers. With GCC, you must use GCC 3.3.4 or later
+to use -feliminate-dwarf2-dups.
+
+* Internationalization
+
+When supported by the host system, GDB will be built with
+internationalization (libintl). The task of marking up the sources is
+continued, we're looking forward to our first translation.
+
+* Ada
+
+Initial support for debugging programs compiled with the GNAT
+implementation of the Ada programming language has been integrated
+into GDB. In this release, support is limited to expression evaluation.
+
+* New native configurations
+
+GNU/Linux/m32r m32r-*-linux-gnu
+
+* Remote 'p' packet
+
+GDB's remote protocol now includes support for the 'p' packet. This
+packet is used to fetch individual registers from a remote inferior.
+
+* END-OF-LIFE registers[] compatibility module
+
+GDB's internal register infrastructure has been completely rewritten.
+The new infrastructure making possible the implementation of key new
+features including 32x64 (e.g., 64-bit amd64 GDB debugging a 32-bit
+i386 application).
+
+GDB 6.3 will be the last release to include the the registers[]
+compatibility module that allowed out-of-date configurations to
+continue to work. This change directly impacts the following
+configurations:
+
+hppa-*-hpux
+ia64-*-aix
+mips-*-irix*
+*-*-lynx
+mips-*-linux-gnu
+sds protocol
+xdr protocol
+powerpc bdm protocol
+
+Unless there is activity to revive these configurations, they will be
+made OBSOLETE in GDB 6.4, and REMOVED from GDB 6.5.
+
+* 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.
+
+h8300-*-*
+mcore-*-*
+mn10300-*-*
+ns32k-*-*
+sh64-*-*
+v850-*-*
+
+*** Changes in GDB 6.2.1:
+
+* MIPS `break main; run' gave an heuristic-fence-post warning
+
+When attempting to run even a simple program, a warning about
+heuristic-fence-post being hit would be reported. This problem has
+been fixed.
+
+* MIPS IRIX 'long double' crashed GDB
+
+When examining a long double variable, GDB would get a segmentation
+fault. The crash has been fixed (but GDB 6.2 cannot correctly examine
+IRIX long double values).
+
+* VAX and "next"
+
+A bug in the VAX stack code was causing problems with the "next"
+command. This problem has been fixed.
+
+*** Changes in GDB 6.2:
+
+* Fix for ``many threads''
+
+On GNU/Linux systems that use the NPTL threads library, a program
+rapidly creating and deleting threads would confuse GDB leading to the
+error message:
+
+ ptrace: No such process.
+ thread_db_get_info: cannot get thread info: generic error
+
+This problem has been fixed.
+
+* "-async" and "-noasync" options removed.
+
+Support for the broken "-noasync" option has been removed (it caused
+GDB to dump core).
* New ``start'' command.
This command runs the program until the begining of the main procedure.
+* New BSD Kernel Data Access Library (libkvm) interface
+
+Using ``target kvm'' it is now possible to debug kernel core dumps and
+live kernel memory images on various FreeBSD, NetBSD and OpenBSD
+platforms. Currently supported (native-only) configurations are:
+
+FreeBSD/amd64 x86_64-*-freebsd*
+FreeBSD/i386 i?86-*-freebsd*
+NetBSD/i386 i?86-*-netbsd*
+NetBSD/m68k m68*-*-netbsd*
+NetBSD/sparc sparc-*-netbsd*
+OpenBSD/amd64 x86_64-*-openbsd*
+OpenBSD/i386 i?86-*-openbsd*
+OpenBSD/m68k m68*-openbsd*
+OpenBSD/sparc sparc-*-openbsd*
+
* Signal trampoline code overhauled
Many generic problems with GDB's signal handling code have been fixed.
call; backtrace through a signal trampoline; step into and out of
signal handlers; and single-stepping in the signal trampoline.
-These fixes were tested on i386 GNU/Linux systems that include a 2.4
-kernel.
+Please note that kernel bugs are a limiting factor here. These
+features have been shown to work on an s390 GNU/Linux system that
+include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702.
* Cygwin support for DWARF 2 added.
* New native configurations
+GNU/Linux/hppa hppa*-*-linux*
+OpenBSD/hppa hppa*-*-openbsd*
OpenBSD/m68k m68*-*-openbsd*
OpenBSD/m88k m88*-*-openbsd*
OpenBSD/powerpc powerpc-*-openbsd*
NetBSD/vax vax-*-netbsd*
OpenBSD/vax vax-*-openbsd*
+* END-OF-LIFE frame compatibility module
+
+GDB's internal frame infrastructure has been completely rewritten.
+The new infrastructure making it possible to support key new features
+including DWARF 2 Call Frame Information. To aid in the task of
+migrating old configurations to this new infrastructure, a
+compatibility module, that allowed old configurations to continue to
+work, was also included.
+
+GDB 6.2 will be the last release to include this frame compatibility
+module. This change directly impacts the following configurations:
+
+h8300-*-*
+mcore-*-*
+mn10300-*-*
+ns32k-*-*
+sh64-*-*
+v850-*-*
+xstormy16-*-*
+
+Unless there is activity to revive these configurations, they will be
+made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4.
+
* REMOVED configurations and files
Sun 3, running SunOS 3 m68*-*-sunos3*