What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 8.3
+*** Changes since GDB 9
+
+* Debugging MS-Windows processes now sets $_exitsignal when the
+ inferior is terminated by a signal, instead of setting $_exitcode.
+
+* Multithreaded symbol loading has now been enabled by default on systems
+ that support it (see entry for GDB 9, below), providing faster
+ performance for programs with many symbols.
+
+*** Changes in GDB 9
* 'thread-exited' event is now available in the annotations interface.
This feature is still in testing, so it is disabled by default. You
can turn it on using 'maint set worker-threads unlimited'.
+* Multi-target debugging support
+
+ GDB now supports debugging multiple target connections
+ simultaneously. For example, you can now have each inferior
+ connected to different remote servers running in different machines,
+ or have one inferior debugging a local native process, an inferior
+ debugging a core dump, etc.
+
+ This support is experimental and comes with some limitations -- you
+ can only resume multiple targets simultaneously if all targets
+ support non-stop mode, and all remote stubs or servers must support
+ the same set of remote protocol features exactly. See also "info
+ connections" and "add-inferior -no-connection" below, and "maint set
+ target-non-stop" in the user manual.
+
* Python API
** The gdb.Value type has a new method 'format_string' which returns a
The default max-depth is 20, but this can be set to unlimited to get
the old behavior back.
+set print raw-values [on|off]
+show print raw-values
+ By default, GDB applies the enabled pretty printers when printing a
+ value. This allows to ignore the enabled pretty printers for a series
+ of commands. The default is 'off'.
+
set logging debugredirect [on|off]
By default, GDB debug output will go to both the terminal and the logfile.
Set if you want debug output to go only to the log file.
"set debug remote".
The default is 512 bytes.
+info connections
+ Lists the target connections currently in use.
+
* Changed commands
help
old commands are now deprecated and may be removed in a future
release.
+add-inferior [-no-connection]
+ The add-inferior command now supports a "-no-connection" flag that
+ makes the new inferior start with no target connection associated.
+ By default, the new inferior inherits the target connection of the
+ current inferior. See also "info connections".
+
+info inferior
+ This command's output now includes a new "Connection" column
+ indicating which target connection an inferior is bound to. See
+ "info connections" above.
+
maint test-options require-delimiter
maint test-options unknown-is-error
maint test-options unknown-is-operand
-null-stop [on|off]
-object [on|off]
-pretty [on|off]
+ -raw-values [on|off]
-repeats NUMBER|unlimited
-static-members [on|off]
-symbol [on|off]
"on" if omitted. This allows writing compact command invocations,
like for example:
- (gdb) p -r -p -o 0 -- *myptr
+ (gdb) p -ra -p -o 0 -- *myptr
The above is equivalent to:
- (gdb) print -raw -pretty -object off -- *myptr
+ (gdb) print -raw-values -pretty -object off -- *myptr
** The "info types" command now supports the '-q' flag to disable
printing of some header information in a similar fashion to "info
-symbol-info-modules, this is the MI equivalent of the CLI 'info
modules' command.
+-symbol-info-module-functions and -symbol-info-module-variables.
+ These commands are the MI equivalent of the CLI commands 'info
+ module functions' and 'info module variables'.
+
* Other MI changes
** The default version of the MI interpreter is now 3 (-i=mi3).