+*** Changes since GDB 10
+
+* The 'set disassembler-options' command now supports specifying options
+ for the ARC target.
+
+* GDB now supports general memory tagging functionality if the underlying
+ architecture supports the proper primitives and hooks. Currently this is
+ enabled only for AArch64 MTE.
+
+ This includes:
+
+ - Additional information when the inferior crashes with a SIGSEGV caused by
+ a memory tag violation.
+
+ - A new modifier 'm' for the "x" command, which displays allocation tags for a
+ particular memory range.
+
+ - Display of memory tag mismatches by "print", for addresses and
+ pointers, if memory tagging is supported by the architecture.
+
+* Building GDB now requires GMP (The GNU Multiple Precision Arithmetic
+ Library).
+
+* MI changes
+
+ ** '-break-insert --qualified' and '-dprintf-insert --qualified'
+
+ The MI -break-insert and -dprintf-insert commands now support a
+ new "--qualified" option that makes GDB interpret a specified
+ function name as a complete fully-qualified name. This is the
+ equivalent of the CLI's "break -qualified" and "dprintf
+ -qualified".
+
+ ** '-break-insert --force-condition' and '-dprintf-insert --force-condition'
+
+ The MI -break-insert and -dprintf-insert commands now support a
+ '--force-condition' flag to forcibly define a condition even when
+ the condition is invalid at all locations of the breakpoint. This
+ is equivalent to the '-force-condition' flag of the CLI's "break"
+ command.
+
+ ** '-break-condition --force'
+
+ The MI -break-condition command now supports a '--force' flag to
+ forcibly define a condition even when the condition is invalid at
+ all locations of the selected breakpoint. This is equivalent to
+ the '-force' flag of the CLI's "cond" command.
+
+ ** '-file-list-exec-source-files [--group-by-objfile]
+ [--basename | --dirname]
+ [--] [REGEXP]'
+
+ The existing -file-list-exec-source-files command now takes an
+ optional REGEXP which is used to filter the source files that are
+ included in the results.
+
+ By default REGEXP is matched against the full filename of the
+ source file. When one of --basename or --dirname is given then
+ REGEXP is only matched against the specified part of the full
+ source filename.
+
+ When the optional --group-by-objfile flag is used the output
+ format is changed, the results are now a list of object files
+ (executable and libraries) with the source files that are
+ associated with each object file.
+
+ The results from -file-list-exec-source-files now include a
+ 'debug-fully-read' field which takes the value 'true' or 'false'.
+ A 'true' value indicates the source file is from a compilation
+ unit that has had its debug information fully read in by GDB, a
+ value of 'false' indicates GDB has only performed a partial scan
+ of the debug information so far.
+
+* GDB now supports core file debugging for x86_64 Cygwin programs.
+
+* GDB will now look for the .gdbinit file in a config directory before
+ looking for ~/.gdbinit. The file is searched for in the following
+ locations: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit,
+ $HOME/.gdbinit. On Apple hosts the search order is instead:
+ $HOME/Library/Preferences/gdb/gdbinit, $HOME/.gdbinit.
+
+* GDB now supports fixed point types which are described in DWARF
+ as base types with a fixed-point encoding. Additionally, support
+ for the DW_AT_GNU_numerator and DW_AT_GNU_denominator has also
+ been added.
+
+ For Ada, this allows support for fixed point types without requiring
+ the use of the GNAT encoding (based on information added to the type's
+ name following a GNAT-specific format).
+
+* GDB will now load and process commands from ~/.config/gdb/gdbearlyinit
+ or ~/.gdbearlyinit if these files are present. These files are
+ processed earlier than any of the other initialization files and
+ can affect parts of GDB's startup that previously had already been
+ completed before the initialization files were read, for example
+ styling of the initial GDB greeting.
+
+* GDB now has two new options "--early-init-command" and
+ "--early-init-eval-command" with corresponding short options "-eix"
+ and "-eiex" that allow options (that would normally appear in a
+ gdbearlyinit file) to be passed on the command line.
+
+* For RISC-V targets, the target feature "org.gnu.gdb.riscv.vector" is
+ now understood by GDB, and can be used to describe the vector
+ registers of a target. The precise requirements of this register
+ feature are documented in the GDB manual.
+
+* New commands
+
+set debug event-loop
+show debug event-loop
+ Control the display of debug output about GDB's event loop.
+
+set print memory-tag-violations
+show print memory-tag-violations
+ Control whether to display additional information about memory tag violations
+ when printing pointers and addresses. Architecture support for memory
+ tagging is required for this option to have an effect.
+
+maintenance flush symbol-cache
+maintenance flush register-cache
+ These new commands are equivalent to the already existing commands
+ 'maintenance flush-symbol-cache' and 'flushregs' respectively.
+
+maintenance flush dcache
+ A new command to flush the dcache.
+
+maintenance info target-sections
+ Print GDB's internal target sections table.
+
+memory-tag show-logical-tag POINTER
+ Print the logical tag for POINTER.
+memory-tag with-logical-tag POINTER TAG
+ Print POINTER with logical tag TAG.
+memory-tag show-allocation-tag ADDRESS
+ Print the allocation tag for ADDRESS.
+memory-tag set-allocation-tag ADDRESS LENGTH TAGS
+ Set the allocation tag for [ADDRESS, ADDRESS + LENGTH) to TAGS.
+memory-tag check POINTER
+ Validate that POINTER's logical tag matches the allocation tag.
+
+set startup-quietly on|off
+show startup-quietly
+ When 'on', this causes GDB to act as if "-silent" were passed on the
+ command line. This command needs to be added to an early
+ initialization file (e.g. ~/.config/gdb/gdbearlyinit) in order to
+ affect GDB.
+
+set print type hex on|off
+show print type hex
+ When 'on', the 'ptype' command uses hexadecimal notation to print sizes
+ and offsets of struct members. When 'off', decimal notation is used.
+
+set python ignore-environment on|off
+show python ignore-environment
+ When 'on', this causes GDB's builtin Python to ignore any
+ environment variables that would otherwise affect how Python
+ behaves. This command needs to be added to an early initialization
+ file (e.g. ~/.config/gdb/gdbearlyinit) in order to affect GDB.
+
+set python dont-write-bytecode auto|on|off
+show python dont-write-bytecode
+ When 'on', this causes GDB's builtin Python to not write any
+ byte-code (.pyc files) to disk. This command needs to be added to
+ an early initialization file (e.g. ~/.config/gdb/gdbearlyinit) in
+ order to affect GDB. When 'off' byte-code will always be written.
+ When set to 'auto' (the default) Python will check the
+ PYTHONDONTWRITEBYTECODE environment variable.
+
+* Changed commands
+
+break [PROBE_MODIFIER] [LOCATION] [thread THREADNUM]
+ [-force-condition] [if CONDITION]
+ This command would previously refuse setting a breakpoint if the
+ CONDITION expression is invalid at a location. It now accepts and
+ defines the breakpoint if there is at least one location at which
+ the CONDITION is valid. The locations for which the CONDITION is
+ invalid, are automatically disabled. If CONDITION is invalid at all
+ of the locations, setting the breakpoint is still rejected. However,
+ the '-force-condition' flag can be used in this case for forcing GDB to
+ define the breakpoint, making all the current locations automatically
+ disabled. This may be useful if the user knows the condition will
+ become meaningful at a future location, e.g. due to a shared library
+ load.
+
+condition [-force] N COND
+ The behavior of this command is changed the same way for the 'break'
+ command as explained above. The '-force' flag can be used to force
+ GDB into defining the condition even when COND is invalid for all the
+ current locations of breakpoint N.
+
+flushregs
+maintenance flush-symbol-cache
+ These commands are deprecated in favor of the new commands
+ 'maintenance flush register-cache' and 'maintenance flush
+ symbol-cache' respectively.
+
+set style version foreground COLOR
+set style version background COLOR
+set style version intensity VALUE
+ Control the styling of GDB's version number text.
+
+inferior [ID]
+ When the ID parameter is omitted, then this command prints information
+ about the current inferior. When the ID parameter is present, the
+ behavior of the command is unchanged and have the inferior ID become
+ the current inferior.
+
+maintenance info sections
+ The ALLOBJ keyword has been replaced with an -all-objects command
+ line flag. It is now possible to filter which sections are printed
+ even when -all-objects is passed.
+
+ptype[/FLAGS] TYPE | EXPRESSION
+ The 'ptype' command has two new flags. When '/x' is set, hexadecimal
+ notation is used when printing sizes and offsets of struct members.
+ When '/d' is set, decimal notation is used when printing sizes and
+ offsets of struct members. Default behavior is given by 'show print
+ type hex'.
+
+* Removed targets and native configurations
+
+ARM Symbian arm*-*-symbianelf*
+
+* New remote packets
+
+qMemTags
+ Request the remote to send allocation tags for a particular memory range.
+QMemTags
+ Request the remote to store the specified allocation tags to the requested
+ memory range.
+
+* Guile API
+
+ ** Improved support for rvalue reference values:
+ TYPE_CODE_RVALUE_REF is now exported as part of the API and the
+ value-referenced-value procedure now handles rvalue reference
+ values.
+
+ ** New procedures for obtaining value variants:
+ value-reference-value, value-rvalue-reference-value and
+ value-const-value.
+
+* Python API
+
+ ** Inferior objects now contain a read-only 'connection_num' attribute that
+ gives the connection number as seen in 'info connections' and
+ 'info inferiors'.
+
+ ** New method gdb.Frame.level() which returns the stack level of the
+ frame object.
+
+ ** New method gdb.PendingFrame.level() which returns the stack level
+ of the frame object.
+
+ ** When hitting a catchpoint, the Python API will now emit a
+ gdb.BreakpointEvent rather than a gdb.StopEvent. The
+ gdb.Breakpoint attached to the event will have type BP_CATCHPOINT.
+
+*** Changes in GDB 10
+
+* There are new feature names for ARC targets: "org.gnu.gdb.arc.core"
+ and "org.gnu.gdb.arc.aux". The old names are still supported but
+ must be considered obsolete. They will be deprecated after some
+ grace period.
+
+* Help and apropos commands will now show the documentation of a
+ command only once, even if that command has one or more aliases.
+ These commands now show the command name, then all of its aliases,
+ and finally the description of the command.
+
+* 'help aliases' now shows only the user defined aliases. GDB predefined
+ aliases are shown together with their aliased command.
+
+* GDB now supports debuginfod, an HTTP server for distributing ELF/DWARF
+ debugging information as well as source code.
+
+ When built with debuginfod, GDB can automatically query debuginfod
+ servers for the separate debug files and source code of the executable
+ being debugged.
+
+ To build GDB with debuginfod, pass --with-debuginfod to configure (this
+ requires libdebuginfod, the debuginfod client library).
+
+ debuginfod is distributed with elfutils, starting with version 0.178.
+
+ You can get the latest version from https://sourceware.org/elfutils.
+
+* 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.
+
+* New features in the GDB remote stub, GDBserver
+
+ ** GDBserver is now supported on ARC GNU/Linux.
+
+ ** GDBserver is now supported on RISC-V GNU/Linux.
+
+ ** GDBserver no longer supports these host triplets:
+
+ i[34567]86-*-lynxos*
+ powerpc-*-lynxos*
+ i[34567]86-*-nto*
+ bfin-*-*linux*
+ crisv32-*-linux*
+ cris-*-linux*
+ m32r*-*-linux*
+ tilegx-*-linux*
+ arm*-*-mingw32ce*
+ i[34567]86-*-mingw32ce*
+
+* 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.
+
+* The $_siginfo convenience variable now also works on Windows targets,
+ and will display the EXCEPTION_RECORD of the last handled exception.
+
+* TUI windows can now be arranged horizontally.
+
+* The command history filename can now be set to the empty string
+ either using 'set history filename' or by setting 'GDBHISTFILE=' in
+ the environment. The effect of setting this filename to the empty
+ string is that GDB will not try to load any previous command
+ history.
+
+* On Windows targets, it is now possible to debug 32-bit programs with a
+ 64-bit GDB.
+
+* New commands
+
+set exec-file-mismatch -- Set exec-file-mismatch handling (ask|warn|off).
+show exec-file-mismatch -- Show exec-file-mismatch handling (ask|warn|off).
+ Set or show the option 'exec-file-mismatch'. When GDB attaches to a
+ running process, this new option indicates whether to detect
+ a mismatch between the current executable file loaded by GDB and the
+ executable file used to start the process. If 'ask', the default,
+ display a warning and ask the user whether to load the process
+ executable file; if 'warn', just display a warning; if 'off', don't
+ attempt to detect a mismatch.
+
+tui new-layout NAME WINDOW WEIGHT [WINDOW WEIGHT]...
+ Define a new TUI layout, specifying its name and the windows that
+ will be displayed.
+
+maintenance print xml-tdesc [FILE]
+ Prints the current target description as an XML document. If the
+ optional FILE is provided (which is an XML target description) then
+ the target description is read from FILE into GDB, and then
+ reprinted.
+
+maintenance print core-file-backed-mappings
+ Prints file-backed mappings loaded from a core file's note section.
+ Output is expected to be similar to that of "info proc mappings".
+
+set debug fortran-array-slicing on|off
+show debug fortran-array-slicing
+ Print debugging when taking slices of Fortran arrays.
+
+set fortran repack-array-slices on|off
+show fortran repack-array-slices
+ When taking slices from Fortran arrays and strings, if the slice is
+ non-contiguous within the original value then, when this option is
+ on, the new value will be repacked into a single contiguous value.
+ When this option is off, then the value returned will consist of a
+ descriptor that describes the slice within the memory of the
+ original parent value.
+
+* Changed commands
+
+alias [-a] [--] ALIAS = COMMAND [DEFAULT-ARGS...]
+ The alias command can now specify default args for an alias.
+ GDB automatically prepends the alias default args to the argument list
+ provided explicitly by the user.
+ For example, to have a backtrace with full details, you can define
+ an alias 'bt_ALL' as
+ 'alias bt_ALL = backtrace -entry-values both -frame-arg all
+ -past-main -past-entry -full'.
+ Alias default arguments can also use a set of nested 'with' commands,
+ e.g. 'alias pp10 = with print pretty -- with print elem 10 -- print'
+ defines the alias pp10 that will pretty print a maximum of 10 elements
+ of the given expression (if the expression is an array).
+
+* New targets
+
+GNU/Linux/RISC-V (gdbserver) riscv*-*-linux*
+BPF bpf-unknown-none
+
+* Python API
+
+ ** gdb.register_window_type can be used to implement new TUI windows
+ in Python.
+
+ ** Dynamic types can now be queried. gdb.Type has a new attribute,
+ "dynamic", and gdb.Type.sizeof can be None for a dynamic type. A
+ field of a dynamic type may have None for its "bitpos" attribute
+ as well.
+
+ ** Commands written in Python can be in the "TUI" help class by
+ registering with the new constant gdb.COMMAND_TUI.
+
+ ** New method gdb.PendingFrame.architecture () to retrieve the
+ architecture of the pending frame.
+
+ ** New gdb.Architecture.registers method that returns a
+ gdb.RegisterDescriptorIterator object, an iterator that returns
+ gdb.RegisterDescriptor objects. The new RegisterDescriptor is a
+ way to query the registers available for an architecture.
+
+ ** New gdb.Architecture.register_groups method that returns a
+ gdb.RegisterGroupIterator object, an iterator that returns
+ gdb.RegisterGroup objects. The new RegisterGroup is a way to
+ discover the available register groups.
+
+* Guile API
+
+ ** GDB can now be built with GNU Guile 3.0 and 2.2 in addition to 2.0.
+
+ ** Procedures 'memory-port-read-buffer-size',
+ 'set-memory-port-read-buffer-size!', 'memory-port-write-buffer-size',
+ and 'set-memory-port-write-buffer-size!' are deprecated. When
+ using Guile 2.2 and later, users who need to control the size of
+ a memory port's internal buffer can use the 'setvbuf' procedure.
+
+*** Changes in GDB 9