What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 6.6
+*** Changes since GDB 6.8
+
+* GDB now supports automatic retrieval of shared library files from
+remote targets. To use this feature, specify a system root that begins
+with the `remote:' prefix, either via the `set sysroot' command or via
+the `--with-sysroot' configure-time option.
+
+* Commands `set debug-file-directory', `set solib-search-path' and `set args'
+now complete on file names.
+
+* When completing in expressions, gdb will attempt to limit
+completions to allowable structure or union fields, where appropriate.
+For instance, consider:
+
+ # struct example { int f1; double f2; };
+ # struct example variable;
+ (gdb) p variable.
+
+If the user types TAB at the end of this command line, the available
+completions will be "f1" and "f2".
+
+* GDB now supports the token-splicing (##) and stringification (#)
+operators when expanding macros. It also supports variable-arity
+macros.
+
+* GDB now supports inspecting extra signal information, exported by
+ the new $_siginfo convenience variable. The feature is currently
+ implemented on linux ARM, i386 and amd64.
+
+* New remote packets
+
+qSearch:memory:
+ Search memory for a sequence of bytes.
+
+QStartNoAckMode
+ Turn off `+'/`-' protocol acknowledgments to permit more efficient
+ operation over reliable transport links. Use of this packet is
+ controlled by the `set remote noack-packet' command.
+
+qXfer:osdata:read
+ Obtains additional operating system information
+
+qXfer:siginfo:read
+qXfer:siginfo:write
+ Read or write additional signal information.
+
+* Removed remote protocol undocumented extension
+
+ An undocumented extension to the remote protocol's `S' stop reply
+ packet that permited the stub to pass a process id was removed.
+ Remote servers should use the `T' stop reply packet instead.
+
+* The "disassemble" command now supports an optional /m modifier to print mixed
+source+assembly.
+
+* GDB now supports multiple function calling conventions according to the
+DWARF-2 DW_AT_calling_convention function attribute.
+
+* The SH target utilizes the aforementioned change to distinguish between gcc
+and Renesas calling convention. It also adds the new CLI commands
+`set/show sh calling-convention'.
+
+* GDB can now read compressed debug sections, as produced by GNU gold
+with the --compress-debug-sections=zlib flag.
+
+* 64-bit core files are now supported on AIX.
+
+* Thread switching is now supported on Tru64.
+
+* Watchpoints can now be set on unreadable memory locations, e.g. addresses
+which will be allocated using malloc later in program execution.
+
+* The qXfer:libraries:read remote procotol packet now allows passing a
+list of section offsets.
+
+* On GNU/Linux, GDB can now attach to stopped processes. Several race
+conditions handling signals delivered during attach or thread creation
+have also been fixed.
+
+* GDB now supports the use of DWARF boolean types for Ada's type Boolean.
+From the user's standpoint, all unqualified instances of True and False
+are treated as the standard definitions, regardless of context.
+
+* New features in the GDB remote stub, gdbserver
+
+ - The "--wrapper" command-line argument tells gdbserver to use a
+ wrapper program to launch programs for debugging.
+
+ - On PowerPC and S/390 targets, it is now possible to use a single
+ gdbserver executable to debug both 32-bit and 64-bit programs.
+ (This requires gdbserver itself to be built as a 64-bit executable.)
+
+ - gdbserver uses the new noack protocol mode for TCP connections to
+ reduce communications latency, if also supported and enabled in GDB.
+
+ - Support for the sparc64-linux-gnu target is now included in
+ gdbserver.
+
+* Python scripting
+
+ GDB now has support for scripting using Python. Whether this is
+ available is determined at configure time.
+
+ New GDB commands can now be written in Python.
+
+* Ada tasking support
+
+ Ada tasks can now be inspected in GDB. The following commands have
+ been introduced:
+
+ info tasks
+ Print the list of Ada tasks.
+ info task N
+ Print detailed information about task number N.
+ task
+ Print the task number of the current task.
+ task N
+ Switch the context of debugging to task number N.
+
+* Support for user-defined prefixed commands. The "define" command can
+add new commands to existing prefixes, e.g. "target".
+
+* New commands
+
+find [/size-char] [/max-count] start-address, end-address|+search-space-size,
+ val1 [, val2, ...]
+ Search memory for a sequence of bytes.
+
+maint set python print-stack
+maint show python print-stack
+ Show a stack trace when an error is encountered in a Python script.
+
+python [CODE]
+ Invoke CODE by passing it to the Python interpreter.
+
+set print symbol-loading
+show print symbol-loading
+ Control printing of symbol loading messages.
+
+set debug timestamp
+show debug timestamp
+ Display timestamps with GDB debugging output.
+
+set exec-wrapper
+show exec-wrapper
+unset exec-wrapper
+ Use a wrapper program to launch programs for debugging.
+
+set multiple-symbols (all|ask|cancel)
+show multiple-symbols
+ The value of this variable can be changed to adjust the debugger behavior
+ when an expression or a breakpoint location contains an ambiguous symbol
+ name (an overloaded function name, for instance).
+
+set breakpoint always-inserted
+show breakpoint always-inserted
+ Keep breakpoints always inserted in the target, as opposed to inserting
+ them when resuming the target, and removing them when the target stops.
+ This option can improve debugger performance on slow remote targets.
+
+set arm fallback-mode (arm|thumb|auto)
+show arm fallback-mode
+set arm force-mode (arm|thumb|auto)
+show arm force-mode
+ These commands control how ARM GDB determines whether instructions
+ are ARM or Thumb. The default for both settings is auto, which uses
+ the current CPSR value for instructions without symbols; previous
+ versions of GDB behaved as if "set arm fallback-mode arm".
+
+set disable-randomization
+show disable-randomization
+ Standalone programs run with the virtual address space randomization enabled
+ by default on some platforms. This option keeps the addresses stable across
+ multiple debugging sessions.
+
+set target-async
+ Requests that asynchronous execution is enabled in the target, if available.
+ In this case, it's possible to resume target in the background, and interact
+ with GDB while the target is running. "show target-async" displays the
+ current state of asynchronous execution of the target.
+
+set tcp auto-retry (on|off)
+show tcp auto-retry
+set tcp connect-timeout
+show tcp connect-timeout
+ These commands allow GDB to retry failed TCP connections to a remote stub
+ with a specified timeout period; this is useful if the stub is launched
+ in parallel with GDB but may not be ready to accept connections immediately.
+
+macro define
+macro list
+macro undef
+ These allow macros to be defined, undefined, and listed
+ interactively.
+
+info os processes
+ Show operating system information about processes.
+
+* New native configurations
+
+x86/x86_64 Darwin i[34567]86-*-darwin*
+
+x86_64 MinGW x86_64-*-mingw*
+
+* New targets
+
+x86 DICOS i[34567]86-*-dicos*
+
+* Removed commands
+
+catch load
+catch unload
+ These commands were actually not implemented on any target.
+
+*** Changes in GDB 6.8
+
+* New native configurations
+
+NetBSD/hppa hppa*-*netbsd*
+Xtensa GNU/Linux xtensa*-*-linux*
+
+* New targets
+
+NetBSD/hppa hppa*-*-netbsd*
+Xtensa GNU/Lunux xtensa*-*-linux*
+
+* Change in command line behavior -- corefiles vs. process ids.
+
+ When the '-p NUMBER' or '--pid NUMBER' options are used, and
+ attaching to process NUMBER fails, GDB no longer attempts to open a
+ core file named NUMBER. Attaching to a program using the -c option
+ is no longer supported. Instead, use the '-p' or '--pid' options.
+
+* GDB can now be built as a native debugger for debugging Windows x86
+(mingw32) Portable Executable (PE) programs.
+
+* Pending breakpoints no longer change their number when their address
+is resolved.
+
+* GDB now supports breakpoints with multiple locations,
+including breakpoints on C++ constructors, inside C++ templates,
+and in inlined functions.
+
+* GDB's ability to debug optimized code has been improved. GDB more
+accurately identifies function bodies and lexical blocks that occupy
+more than one contiguous range of addresses.
+
+* Target descriptions can now describe registers for PowerPC.
+
+* The GDB remote stub, gdbserver, now supports the AltiVec and SPE
+registers on PowerPC targets.
+
+* The GDB remote stub, gdbserver, now supports thread debugging on GNU/Linux
+targets even when the libthread_db library is not available.
+
+* The GDB remote stub, gdbserver, now supports the new file transfer
+commands (remote put, remote get, and remote delete).
+
+* The GDB remote stub, gdbserver, now supports run and attach in
+extended-remote mode.
+
+* hppa*64*-*-hpux11* target broken
+The debugger is unable to start a program and fails with the following
+error: "Error trying to get information about dynamic linker".
+The gdb-6.7 release is also affected.
+
+* GDB now supports the --enable-targets= configure option to allow
+building a single GDB executable that supports multiple remote
+target architectures.
+
+* GDB now supports debugging C and C++ programs which use the
+Decimal Floating Point extension. In addition, the PowerPC target
+now has a set of pseudo-registers to inspect decimal float values
+stored in two consecutive float registers.
+
+* The -break-insert MI command can optionally create pending
+breakpoints now.
+
+* Improved support for debugging Ada
+Many improvements to the Ada language support have been made. These
+include:
+ - Better support for Ada2005 interface types
+ - Improved handling of arrays and slices in general
+ - Better support for Taft-amendment types
+ - The '{type} ADDRESS' expression is now allowed on the left hand-side
+ of an assignment
+ - Improved command completion in Ada
+ - Several bug fixes
+
+* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
+process.
+
+* New commands
+
+set print frame-arguments (all|scalars|none)
+show print frame-arguments
+ The value of this variable can be changed to control which argument
+ values should be printed by the debugger when displaying a frame.
+
+remote put
+remote get
+remote delete
+ Transfer files to and from a remote target, and delete remote files.
+
+* New MI commands
+
+-target-file-put
+-target-file-get
+-target-file-delete
+ Transfer files to and from a remote target, and delete remote files.
+
+* New remote packets
+
+vFile:open:
+vFile:close:
+vFile:pread:
+vFile:pwrite:
+vFile:unlink:
+ Open, close, read, write, and delete files on the remote system.
+
+vAttach
+ Attach to an existing process on the remote system, in extended-remote
+ mode.
+
+vRun
+ Run a new process on the remote system, in extended-remote mode.
+
+*** Changes in GDB 6.7
+
+* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb,
+bfd, libiberty and opcodes, as revealed by static analysis donated by
+Coverity, Inc. (http://scan.coverity.com).
+
+* When looking up multiply-defined global symbols, GDB will now prefer the
+symbol definition in the current shared library if it was built using the
+-Bsymbolic linker option.
+
+* 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.
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.
+* Vectors of single-byte data use a new integer type which is not
+automatically displayed as character or string data.
+
+* The /s format now works with the print command. It displays
+arrays of single-byte integers and pointers to single-byte integers
+as strings.
* Target descriptions can now describe target-specific registers,
for architectures which have implemented the support (currently
-only ARM).
+only ARM, M68K, 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.
+
+* The GDB remote protocol "qOffsets" packet can now honor ELF segment
+layout. It also supports a TextSeg= and DataSeg= response when only
+segment base addresses (rather than offsets) are available.
+
+* The /i format now outputs any trailing branch delay slot instructions
+immediately following the last instruction within the count specified.
+
+* The GDB remote protocol "T" stop reply packet now supports a
+"library" response. Combined with the new "qXfer:libraries:read"
+packet, this response allows GDB to debug shared libraries on targets
+where the operating system manages the list of loaded libraries (e.g.
+Windows and SymbianOS).
+
+* The GDB remote stub, gdbserver, now supports dynamic link libraries
+(DLLs) on Windows and Windows CE targets.
+
+* GDB now supports a faster verification that a .debug file matches its binary
+according to its build-id signature, if the signature is present.
+
* 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
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*
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.
+
+qXfer:libraries:read:
+ Report the loaded shared libraries. Combined with new "T" packet
+ response, this packet allows GDB to debug shared libraries on
+ targets where the operating system manages the list of loaded
+ libraries (e.g. Windows and SymbianOS).
+
* Removed targets
Support for these obsolete configurations has been removed.
+alpha*-*-osf1*
+alpha*-*-osf2*
d10v-*-*
hppa*-*-hiux*
i[34567]86-ncr-*
i[34567]86-*-isc*
m68*-cisco*-*
m68*-tandem-*
+mips*-*-pe
rs6000-*-lynxos*
+sh*-*-pe
* Other removed features
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