What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 8.2
+*** Changes since GDB 8.3
+
+* New built-in convenience variables $_gdb_major and $_gdb_minor
+ provide the GDB version. They are handy for conditionally using
+ features available only in or since specific GDB versions, in
+ scripts that should work error-free with many different versions,
+ such as in system-wide init files.
+
+* GDB now supports Thread Local Storage (TLS) variables on several
+ FreeBSD architectures (amd64, i386, powerpc, riscv). Other
+ architectures require kernel changes. TLS is not yet supported for
+ amd64 and i386 process core dumps.
+
+* Support for Pointer Authentication on AArch64 Linux.
+
+* Two new convernience functions $_cimag and $_creal that extract the
+ imaginary and real parts respectively from complex numbers.
+
+* New commands
+
+set print max-depth
+show print max-depth
+ Allows deeply nested structures to be simplified when printing by
+ replacing deeply nested parts (beyond the max-depth) with ellipses.
+ The default max-depth is 20, but this can be set to unlimited to get
+ the old behavior back.
+
+* Python API
+
+ ** The gdb.Value type has a new method 'format_string' which returns a
+ string representing the value. The formatting is controlled by the
+ optional keyword arguments: 'raw', 'pretty_arrays', 'pretty_structs',
+ 'array_indexes', 'symbols', 'unions', 'deref_refs', 'actual_objects',
+ 'static_members', 'max_elements', 'repeat_threshold', and 'format'.
+
+* New commands
+
+set may-call-functions [on|off]
+show may-call-functions
+ This controls whether GDB will attempt to call functions in
+ the program, such as with expressions in the print command. It
+ defaults to on. Calling functions in the program being debugged
+ can have undesired side effects. It is now possible to forbid
+ such function calls. If function calls are forbidden, GDB will throw
+ an error when a command (such as print expression) calls a function
+ in the program.
+
+*** Changes in GDB 8.3
* GDB and GDBserver now support access to additional registers on
PowerPC GNU/Linux targets: PPR, DSCR, TAR, EBB/PMU registers, and
* GDB in batch mode now exits with status 1 if the last command to be
executed failed.
-* Changes to the "frame", "select-frame", and "info frame" CLI
- commands. These commands all now take a frame specification which
- is either a frame level, or one of the keywords 'level', 'address',
- 'function', or 'view' followed by a parameter. Selecting a frame by
- address, or viewing a frame outside the current backtrace now
- requires the use of a keyword. Selecting a frame by level is
- unchanged. The MI comment "-stack-select-frame" is unchanged.
-
* The RISC-V target now supports target descriptions.
* System call catchpoints now support system call aliases on FreeBSD.
source code snippets. See the "set style" commands, below, for more
information.
-* New targets
-
- NXP S12Z s12z-*-elf
- GNU/Linux/OpenRISC or1k*-*-linux*
+* Removed support for old demangling styles arm, edg, gnu, hp and
+ lucid.
* New commands
* Changed commands
+Changes to the "frame", "select-frame", and "info frame" CLI commands.
+ These commands all now take a frame specification which
+ is either a frame level, or one of the keywords 'level', 'address',
+ 'function', or 'view' followed by a parameter. Selecting a frame by
+ address, or viewing a frame outside the current backtrace now
+ requires the use of a keyword. Selecting a frame by level is
+ unchanged. The MI comment "-stack-select-frame" is unchanged.
+
target remote FILENAME
target extended-remote FILENAME
If FILENAME is a Unix domain socket, GDB will attempt to connect
set style enabled [on|off]
show style enabled
Enable or disable terminal styling. Styling is enabled by default
- on most hosts.
+ on most hosts, but disabled by default when in batch mode.
+
+set style sources [on|off]
+show style sources
+ Enable or disable source code styling. Source code styling is
+ enabled by default, but only takes effect if styling in general is
+ enabled, and if GDB was linked with GNU Source Highlight.
set style filename foreground COLOR
set style filename background COLOR
* MI changes
+ ** The default version of the MI interpreter is now 3 (-i=mi3).
+
** The '-data-disassemble' MI command now accepts an '-a' option to
disassemble the whole function surrounding the given program
counter value or function name. Support for this feature can be
** Command responses and notifications that include a frame now include
the frame's architecture in a new "arch" attribute.
+ ** The output of information about multi-location breakpoints (which is
+ syntactically incorrect in MI 2) has changed in MI 3. This affects
+ the following commands and events:
+
+ - -break-insert
+ - -break-info
+ - =breakpoint-created
+ - =breakpoint-modified
+
+ The -fix-multi-location-breakpoint-output command can be used to enable
+ this behavior with previous MI versions.
+
* New native configurations
GNU/Linux/RISC-V riscv*-*-linux*
CSKY ELF csky*-*-elf
CSKY GNU/LINUX csky*-*-linux
FreeBSD/riscv riscv*-*-freebsd*
+NXP S12Z s12z-*-elf
+GNU/Linux/OpenRISC or1k*-*-linux*
+
+* Removed targets
+
+GDB no longer supports native debugging on versions of MS-Windows
+before Windows XP.
* Python API
+ ** GDB no longer supports Python versions less than 2.6.
+
** The gdb.Inferior type has a new 'progspace' property, which is the program
space associated to that inferior.
gdb.SYMBOL_TYPES_DOMAIN are now deprecated. These were never
correct and did not work properly.
+ ** The gdb.Value type has a new constructor, which is used to construct a
+ gdb.Value from a Python buffer object and a gdb.Type.
+
* Configure changes
--enable-ubsan