What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 8.1
+*** Changes since GDB 8.3
+
+*** 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
+ HTM registers.
+
+* GDB now has experimental support for the compilation and injection of
+ C++ source code into the inferior. This beta release does not include
+ support for several language features, such as templates, constructors,
+ and operators.
+
+ This feature requires GCC 7.1 or higher built with libcp1.so
+ (the C++ plug-in).
+
+* GDB and GDBserver now support IPv6 connections. IPv6 addresses
+ can be passed using the '[ADDRESS]:PORT' notation, or the regular
+ 'ADDRESS:PORT' method.
+
+* DWARF index cache: GDB can now automatically save indices of DWARF
+ symbols on disk to speed up further loading of the same binaries.
+
+* Ada task switching is now supported on aarch64-elf targets when
+ debugging a program using the Ravenscar Profile. For more information,
+ see the "Tasking Support when using the Ravenscar Profile" section
+ in the GDB user manual.
+
+* GDB in batch mode now exits with status 1 if the last command to be
+ executed failed.
+
+* The RISC-V target now supports target descriptions.
+
+* System call catchpoints now support system call aliases on FreeBSD.
+ When the ABI of a system call changes in FreeBSD, this is
+ implemented by leaving a compatibility system call using the old ABI
+ at the existing number and allocating a new system call number for
+ the new ABI. For example, FreeBSD 12 altered the layout of 'struct
+ kevent' used by the 'kevent' system call. As a result, FreeBSD 12
+ kernels ship with both 'kevent' and 'freebsd11_kevent' system calls.
+ The 'freebsd11_kevent' system call is assigned an alias of 'kevent'
+ so that a system call catchpoint for the 'kevent' system call will
+ catch invocations of both the 'kevent' and 'freebsd11_kevent'
+ binaries. This ensures that 'kevent' system calls are caught for
+ binaries using either the old or new ABIs.
+
+* Terminal styling is now available for the CLI and the TUI. GNU
+ Source Highlight can additionally be used to provide styling of
+ source code snippets. See the "set style" commands, below, for more
+ information.
+
+* Removed support for old demangling styles arm, edg, gnu, hp and
+ lucid.
+
+* New commands
+
+set debug compile-cplus-types
+show debug compile-cplus-types
+ Control the display of debug output about type conversion in the
+ C++ compile feature. Commands have no effect while compiliong
+ for other languages.
+
+set debug skip
+show debug skip
+ Control whether debug output about files/functions skipping is
+ displayed.
+
+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'.
+
+maint set dwarf unwinders (on|off)
+maint show dwarf unwinders
+ Control whether DWARF unwinders can be used.
+
+info proc files
+ Display a list of open files for a process.
+
+* 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
+ to this socket instead of opening FILENAME as a character device.
+
+info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]
+info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]
+info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]
+info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP]
+ These commands can now print only the searched entities
+ matching the provided regexp(s), giving a condition
+ on the entity names or entity types. The flag -q disables
+ printing headers or informations messages.
+
+info functions
+info types
+info variables
+rbreak
+ These commands now determine the syntax for the shown entities
+ according to the language chosen by `set language'. In particular,
+ `set language auto' means to automatically choose the language of
+ the shown entities.
+
+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.
+
+set tui tab-width NCHARS
+show tui tab-width NCHARS
+ "set tui tab-width" replaces the "tabset" command, which has been deprecated.
+
+set style enabled [on|off]
+show style enabled
+ Enable or disable terminal styling. Styling is enabled by default
+ on most hosts, but disabled by default when in batch mode.
+
+set style filename foreground COLOR
+set style filename background COLOR
+set style filename intensity VALUE
+ Control the styling of file names.
+
+set style function foreground COLOR
+set style function background COLOR
+set style function intensity VALUE
+ Control the styling of function names.
+
+set style variable foreground COLOR
+set style variable background COLOR
+set style variable intensity VALUE
+ Control the styling of variable names.
+
+set style address foreground COLOR
+set style address background COLOR
+set style address intensity VALUE
+ Control the styling of addresses.
+
+* 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
+ verified by using the "-list-features" command, which should
+ contain "data-disassemble-a-option".
+
+ ** 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*
+FreeBSD/riscv riscv*-*-freebsd*
+
+* New targets
+
+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.
+
+ ** The gdb.Progspace type has a new 'objfiles' method, which returns the list
+ of objfiles associated to that program space.
+
+ ** gdb.SYMBOL_LOC_COMMON_BLOCK, gdb.SYMBOL_MODULE_DOMAIN, and
+ gdb.SYMBOL_COMMON_BLOCK_DOMAIN were added to reflect changes to
+ the gdb core.
+
+ ** gdb.SYMBOL_VARIABLES_DOMAIN, gdb.SYMBOL_FUNCTIONS_DOMAIN, and
+ 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
+
+ Enable or disable the undefined behavior sanitizer. This is
+ disabled by default, but passing --enable-ubsan=yes or
+ --enable-ubsan=auto to configure will enable it. Enabling this can
+ cause a performance penalty. The undefined behavior sanitizer was
+ first introduced in GCC 4.9.
+
+*** 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
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.
* C expressions can now use _Alignof, and C++ expressions can now use
alignof.
+* Support for SVE on AArch64 Linux. Note that GDB does not detect changes to
+ the vector length while the process is running.
+
* New commands
set debug fbsd-nat
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.
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
the tradeoff that there is a possibility of false hits being
reported.
+* Configure changes
+
+--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.
+
+--disable-gdbcli has been removed
+ This is now silently accepted, but does nothing.
+
*** Changes in GDB 8.1
* GDB now supports dynamically creating arbitrary register groups specified