*** Changes since GDB 6.8
+* GDB now has an interface for JIT compilation. Applications that
+dynamically generate code can create symbol files in memory and register
+them with GDB. For users, the feature should work transparently, and
+for JIT developers, the interface is documented in the GDB manual in the
+"JIT Compilation Interface" chapter.
+
+* Tracepoints may now be conditional. The syntax is as for
+breakpoints; either an "if" clause appended to the "trace" command,
+or the "condition" command is available. GDB sends the condition to
+the target for evaluation using the same bytecode format as is used
+for tracepoint actions.
+
+* "disassemble" command with a /r modifier, print the raw instructions
+in hex as well as in symbolic form."
+
+* 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.
+* "info sharedlibrary" now takes an optional regex of libraries to show,
+and it now reports if a shared library has no debugging information.
+
* Commands `set debug-file-directory', `set solib-search-path' and `set args'
now complete on file names.
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.
+
+* GDB can now display the VFP floating point registers and NEON vector
+registers on ARM targets. Both ARM GNU/Linux native GDB and gdbserver
+can provide these registers (requires Linux 2.6.30 or later). Remote
+and simulator targets may also provide them.
+
* New remote packets
qSearch:memory:
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
* 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.
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
- 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.
+
+ - 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 commands
+ 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".
+
+* Multi-inferior, multi-process debugging.
+
+ GDB now has generalized support for multi-inferior debugging. See
+ "Debugging Multiple Inferiors" in the manual for more information.
+ Although availability still depends on target support, the command
+ set is more uniform now. The GNU/Linux specific multi-forks support
+ has been migrated to this new framework. This implied some user
+ visible changes; see "New commands" and also "Removed commands"
+ below.
+
+* Target descriptions can now describe the target OS ABI. See the
+"Target Description Format" section in the user manual for more
+information.
+
+* Target descriptions can now describe "compatible" architectures
+to indicate that the target can execute applications for a different
+architecture in addition to those for the main target architecture.
+See the "Target Description Format" section in the user manual for
+more information.
+
+* Multi-architecture debugging.
+
+ GDB now includes general supports for debugging applications on
+ hybrid systems that use more than one single processor architecture
+ at the same time. Each such hybrid architecture still requires
+ specific support to be added. The only hybrid architecture supported
+ in this version of GDB is the Cell Broadband Engine.
+
+* GDB now supports integrated debugging of Cell/B.E. applications that
+use both the PPU and SPU architectures. To enable support for hybrid
+Cell/B.E. debugging, you need to configure GDB to support both the
+powerpc-linux or powerpc64-linux and the spu-elf targets, using the
+--enable-targets configure option.
+
+* New commands (for set/show, see "New options" below)
find [/size-char] [/max-count] start-address, end-address|+search-space-size,
val1 [, val2, ...]
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.
+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.
+
+info inferiors
+ List the inferiors currently under GDB's control.
+
+inferior NUM
+ Switch focus to inferior number NUM.
+
+detach inferior NUM
+ Detach from inferior number NUM.
+
+kill inferior NUM
+ Kill inferior number NUM.
+
+* New options
+
+set spu stop-on-load
+show spu stop-on-load
+ Control whether to stop for new SPE threads during Cell/B.E. debugging.
+
+set spu auto-flush-cache
+show spu auto-flush-cache
+ Control whether to automatically flush the software-managed cache
+ during Cell/B.E. debugging.
+
+set sh calling-convention
+show sh calling-convention
+ Control the calling convention used when calling SH target functions.
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
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.
-macro define
-macro list
-macro undef
- These allow macros to be defined, undefined, and listed
- interactively.
+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.
+
+set stack-cache
+show stack-cache
+ Use more aggressive caching for accesses to the stack. This improves
+ performance of remote debugging (particularly backtraces) without
+ affecting correctness.
+
+* Removed commands
+
+info forks
+ For program forks, this is replaced by the new more generic `info
+ inferiors' command. To list checkpoints, you can still use the
+ `info checkpoints' command, which was an alias for the `info forks'
+ command.
+
+fork NUM
+ Replaced by the new `inferior' command. To switch between
+ checkpoints, you can still use the `restart' command, which was an
+ alias for the `fork' command.
+
+process PID
+ This is removed, since some targets don't have a notion of
+ processes. To switch between processes, you can still use the
+ `inferior' command using GDB's own inferior number.
+
+delete fork NUM
+ For program forks, this is replaced by the new more generic `kill
+ inferior' command. To delete a checkpoint, you can still use the
+ `delete checkpoint' command, which was an alias for the `delete
+ fork' command.
+
+detach fork NUM
+ For program forks, this is replaced by the new more generic `detach
+ inferior' command. To detach a checkpoint, you can still use the
+ `detach checkpoint' command, which was an alias for the `detach
+ fork' command.
+
+* 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*
+S+core 3 score-*-*
+
+* 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