*** Changes since GDB 6.8
+* Process record and replay
+
+ In a architecture environment that supports ``process record and
+ replay'', ``process record and replay'' target can record a log of
+ the process execution, and replay it with both forward and reverse
+ execute commands.
+
+* Reverse debugging: GDB now has new commands reverse-continue, reverse-
+step, reverse-next, reverse-finish, reverse-stepi, reverse-nexti, and
+set execution-direction {forward|reverse}, for targets that support
+reverse execution.
+
+* GDB now supports hardware watchpoints on MIPS/Linux systems. This
+feature is available with a native GDB running on kernel version
+2.6.28 or later.
+
+* GDB now has support for multi-byte and wide character sets on the
+target. Strings whose character type is wchar_t, char16_t, or
+char32_t are now correctly printed. GDB supports wide- and unicode-
+literals in C, that is, L'x', L"string", u'x', u"string", U'x', and
+U"string" syntax. And, GDB allows the "%ls" and "%lc" formats in
+`printf'. This feature requires iconv to work properly; if your
+system does not have a working iconv, GDB can use GNU libiconv. See
+the installation instructions for more information.
+
+* 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".
+
+* Inlined functions are now supported. They show up in backtraces, and
+the "step", "next", and "finish" commands handle them automatically.
+
+* 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.
+
+vKill
+ Kill the process with the specified process ID. Use this in preference
+ to `k' when multiprocess protocol extensions are supported.
+
+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.
+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'.
+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.
+
+* GDB now parses C++ symbol and type names more flexibly. For
+example, given:
+
+ template<typename T> class C { };
+ C<char const *> c;
+
+GDB will now correctly handle all of:
+
+ ptype C<char const *>
+ ptype C<char const*>
+ ptype C<const char *>
+ ptype C<const char*>
+
* 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.
-* New commands
+ - 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.
+
+ - The amd64-linux build of gdbserver now supports debugging both
+ 32-bit and 64-bit programs.
-set debug timetstamp
+ - The i386-linux, amd64-linux, and i386-win32 builds of gdbserver
+ now support hardware watchpoints, and will use them automatically
+ as appropriate.
+
+* 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 (for set/show, see "New options" below)
+
+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.
+
+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 options
+
+set sh calling-convention
+show sh calling-convention
+ Control the calling convention used when calling SH target functions.
+
+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.
+ Control display of timestamps with GDB debugging output.
+
+set disassemble-next-line
+show disassemble-next-line
+ Control display of disassembled source lines or instructions when
+ the debuggee stops.
+
+set remote noack-packet
+show remote noack-packet
+ Set/show the use of remote protocol QStartNoAckMode packet. See above
+ under "New remote packets."
+
+set remote query-attached-packet
+show remote query-attached-packet
+ Control use of remote protocol `qAttached' (query-attached) packet.
+
+set remote read-siginfo-object
+show remote read-siginfo-object
+ Control use of remote protocol `qXfer:siginfo:read' (read-siginfo-object)
+ packet.
+
+set remote write-siginfo-object
+show remote write-siginfo-object
+ Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
+ packet.
+
+set displaced-stepping
+show displaced-stepping
+ Control displaced stepping mode. Displaced stepping is a way to
+ single-step over breakpoints without removing them from the debuggee.
+ Also known as "out-of-line single-stepping".
+
+set debug displaced
+show debug displaced
+ Control display of debugging info for displaced stepping.
+
+maint set internal-error
+maint show internal-error
+ Control what GDB does when an internal error is detected.
+
+maint set internal-warning
+maint show internal-warning
+ Control what GDB does when an internal warning is detected.
set exec-wrapper
show exec-wrapper
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 non-stop
+show non-stop
+ Control whether other threads are stopped or not when some thread hits
+ a breakpoint.
+
+set target-async
+show 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 target-wide-charset
+show target-wide-charset
+ The target-wide-charset is the name of the character set that GDB
+ uses when printing characters whose type is wchar_t.
+
+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.
+
+set libthread-db-search-path
+show libthread-db-search-path
+ Control list of directories which GDB will search for appropriate
+ libthread_db.
+
+set schedule-multiple (on|off)
+show schedule-multiple
+ Allow GDB to resume all threads of all processes or only threads of
+ the current process.
+
+* New native configurations
+
+x86/x86_64 Darwin i[34567]86-*-darwin*
+
+x86_64 MinGW x86_64-*-mingw*
+
+* New targets
+
+Lattice Mico32 lm32-*
+x86 DICOS i[34567]86-*-dicos*
+x86_64 DICOS x86_64-*-dicos*
+
+* The GDB remote stub, gdbserver, now supports x86 Windows CE
+ (mingw32ce) debugging.
+
+* Removed commands
+
+catch load
+catch unload
+ These commands were actually not implemented on any target.
+
*** Changes in GDB 6.8
* New native configurations
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.
+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
breakpoints now.
* Improved support for debugging Ada
- Many improvements to the Ada language support have been made. These
- include:
+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
- 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)
vFile:unlink:
Open, close, read, write, and delete files on the remote system.
-* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
-process.
-
vAttach
Attach to an existing process on the remote system, in extended-remote
mode.