What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 8.0
+*** Changes since GDB 8.2
+
+* GDB and GDBserver now support IPv6 connections. IPv6 addresses
+ can be passed using the '[ADDRESS]:PORT' notation, or the regular
+ 'ADDRESS:PORT' method.
+
+* New commands
+
+frame apply [all | COUNT | -COUNT | level LEVEL...] [FLAG]... COMMAND
+ Apply a command to some frames.
+ FLAG arguments allow to control what output to produce and how to handle
+ errors raised when applying COMMAND to a frame.
+
+taas COMMAND
+ Apply a command to all threads (ignoring errors and empty output).
+ Shortcut for 'thread apply all -s COMMAND'.
+
+faas COMMAND
+ Apply a command to all frames (ignoring errors and empty output).
+ Shortcut for 'frame apply all -s COMMAND'.
+
+tfaas COMMAND
+ Apply a command to all frames of all threads (ignoring errors and empty
+ output).
+ Shortcut for 'thread apply all -s frame apply all -s COMMAND'.
+
+* Changed commands
+
+thread apply [all | COUNT | -COUNT] [FLAG]... COMMAND
+ The 'thread apply' command accepts new FLAG arguments.
+ FLAG arguments allow to control what output to produce and how to handle
+ errors raised when applying COMMAND to a thread.
+
+*** Changes in GDB 8.2
+
+* The 'set disassembler-options' command now supports specifying options
+ for the MIPS target.
+
+* The 'symbol-file' command now accepts an '-o' option to add a relative
+ offset to all sections.
+
+* Similarly, the 'add-symbol-file' command also accepts an '-o' option to add
+ a relative offset to all sections, but it allows to override the load
+ address of individual sections using '-s'.
+
+* The 'add-symbol-file' command no longer requires the second argument
+ (address of the text section).
+
+* The endianness used with the 'set endian auto' mode in the absence of
+ an executable selected for debugging is now the last endianness chosen
+ either by one of the 'set endian big' and 'set endian little' commands
+ or by inferring from the last executable used, rather than the startup
+ default.
+
+* The pager now allows a "c" response, meaning to disable the pager
+ for the rest of the current command.
+
+* The commands 'info variables/functions/types' now show the source line
+ numbers of symbol definitions when available.
+
+* 'info proc' now works on running processes on FreeBSD systems and core
+ files created on FreeBSD systems.
+
+* C expressions can now use _Alignof, and C++ expressions can now use
+ alignof.
+
+* New commands
+
+set debug fbsd-nat
+show debug fbsd-nat
+ Control display of debugging info regarding the FreeBSD native target.
+
+set|show varsize-limit
+ This new setting allows the user to control the maximum size of Ada
+ objects being printed when those objects have a variable type,
+ instead of that maximum size being hardcoded to 65536 bytes.
+
+set|show record btrace cpu
+ Controls the processor to be used for enabling errata workarounds for
+ branch trace decode.
+
+maint check libthread-db
+ Run integrity checks on the current inferior's thread debugging
+ library
+
+maint set check-libthread-db (on|off)
+maint show check-libthread-db
+ Control whether to run integrity checks on inferior specific thread
+ debugging libraries as they are loaded. The default is not to
+ perform such checks.
+
+* Python API
+
+ ** Type alignment is now exposed via the "align" attribute of a gdb.Type.
+
+ ** The commands attached to a breakpoint can be set by assigning to
+ the breakpoint's "commands" field.
+
+ ** gdb.execute can now execute multi-line gdb commands.
+
+ ** The new functions gdb.convenience_variable and
+ gdb.set_convenience_variable can be used to get and set the value
+ of convenience variables.
+
+ ** A gdb.Parameter will no longer print the "set" help text on an
+ ordinary "set"; instead by default a "set" will be silent unless
+ the get_set_string method returns a non-empty string.
+
+* New targets
+
+RiscV ELF riscv*-*-elf
+
+* Removed targets and native configurations
+
+m88k running OpenBSD m88*-*-openbsd*
+SH-5/SH64 ELF sh64-*-elf*, SH-5/SH64 support in sh*
+SH-5/SH64 running GNU/Linux SH-5/SH64 support in sh*-*-linux*
+SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
+
+* Aarch64/Linux hardware watchpoints improvements
+
+ Hardware watchpoints on unaligned addresses are now properly
+ supported when running Linux kernel 4.10 or higher: read and access
+ watchpoints are no longer spuriously missed, and all watchpoints
+ lengths between 1 and 8 bytes are supported. On older kernels,
+ watchpoints set on unaligned addresses are no longer missed, with
+ the tradeoff that there is a possibility of false hits being
+ reported.
+
+* New configure options
+
+--enable-codesign=CERT
+ This can be used to invoke "codesign -s CERT" after building gdb.
+ This option is useful on macOS, where code signing is required for
+ gdb to work properly.
+
+*** Changes in GDB 8.1
+
+* GDB now supports dynamically creating arbitrary register groups specified
+ in XML target descriptions. This allows for finer grain grouping of
+ registers on systems with a large amount of registers.
+
+* The 'ptype' command now accepts a '/o' flag, which prints the
+ offsets and sizes of fields in a struct, like the pahole(1) tool.
* New "--readnever" command line option instructs GDB to not read each
symbol file's symbolic debug information. This makes startup faster
** The "complete" command now mimics TAB completion accurately.
+* New command line options (gcore)
+
+-a
+ Dump all memory mappings.
+
* Breakpoints on C++ functions are now set on all scopes by default
By default, breakpoints on functions/methods are now interpreted as
GDB interpret the specified function name as a complete
fully-qualified name instead. For example, using the same C++
program, the "break -q B::func" command sets a breakpoint on
- "B::func", only.
+ "B::func", only. A parameter has been added to the Python
+ gdb.Breakpoint constructor to achieve the same result when creating
+ a breakpoint from Python.
* Breakpoints on functions marked with C++ ABI tags
gdb.new_thread are emitted. See the manual for further
description of these.
- ** A new command, "rbreak" has been added to the Python API. This
- command allows the setting of a large number of breakpoints via a
- regex pattern in Python. See the manual for further details.
+ ** A new function, "gdb.rbreak" has been added to the Python API.
+ This function allows the setting of a large number of breakpoints
+ via a regex pattern in Python. See the manual for further details.
+
+ ** Python breakpoints can now accept explicit locations. See the
+ manual for a further description of this feature.
+
* New features in the GDB remote stub, GDBserver
information is provided as an extra field named "exception-message"
in the *stopped notification.
+* Trait objects can now be inspected When debugging Rust code. This
+ requires compiler support which will appear in Rust 1.24.
+
* New remote packets
QEnvironmentHexEncoded
show debug separate-debug-file
Control the display of debug output about separate debug file search.
+set dump-excluded-mappings
+show dump-excluded-mappings
+ Control whether mappings marked with the VM_DONTDUMP flag should be
+ dumped when generating a core file.
+
maint info selftests
List the registered selftests.
starti
Start the debugged program stopping at the first instruction.
+set|show debug or1k
+ Control display of debugging messages related to OpenRISC targets.
+
+set|show print type nested-type-limit
+ Set and show the limit of nesting level for nested types that the
+ type printer will show.
+
* TUI Single-Key mode now supports two new shortcut keys: `i' for stepi and
`o' for nexti.
FreeBSD/aarch64 aarch64*-*-freebsd*
FreeBSD/arm arm*-*-freebsd*
+OpenRISC ELF or1k*-*-elf
* Removed targets and native configurations
List the shared libraries in the program. This is
equivalent to the CLI command "info shared".
+-catch-handlers
+ Catchpoints stopping the program when Ada exceptions are
+ handled. This is equivalent to the CLI command "catch handlers".
+
*** Changes in GDB 7.12
* GDB and GDBserver now build with a C++ compiler by default.
* Support for reading/writing memory and extracting values on architectures
whose memory is addressable in units of any integral multiple of 8 bits.
+catch handlers
+ Allows to break when an Ada exception is handled.
+
* New remote packets
exec stop reason