What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 10
+*** Changes since GDB 11
+
+* New commands
+
+maint set backtrace-on-fatal-signal on|off
+maint show backtrace-on-fatal-signal
+ This setting is 'on' by default. When 'on' GDB will print a limited
+ backtrace to stderr in the situation where GDB terminates with a
+ fatal signal. This only supported on some platforms where the
+ backtrace and backtrace_symbols_fd functions are available.
+
+set source open on|off
+show source open
+ This setting, which is on by default, controls whether GDB will try
+ to open source code files. Switching this off will stop GDB trying
+ to open and read source code files, which can be useful if the files
+ are located over a slow network connection.
+
+set varsize-limit
+show varsize-limit
+ These are now deprecated aliases for "set max-value-size" and
+ "show max-value-size".
+
+maint set internal-error backtrace on|off
+maint show internal-error backtrace
+maint set internal-warning backtrace on|off
+maint show internal-warning backtrace
+ GDB can now print a backtrace of itself when it encounters either an
+ internal-error, or an internal-warning. This is on by default for
+ internal-error and off by default for internal-warning.
+
+set logging on|off
+ Deprecated and replaced by "set logging enabled on|off".
+
+set logging enabled on|off
+show logging enabled
+ These commands set or show whether logging is enabled or disabled.
+
+* Changed commands
+
+maint packet
+ This command can now print a reply, if the reply includes
+ non-printable characters. Any non-printable characters are printed
+ as escaped hex, e.g. \x?? where '??' is replaces with the value of
+ the non-printable character.
+
+* Python API
+
+ ** New function gdb.add_history(), which takes a gdb.Value object
+ and adds the value it represents to GDB's history list. An
+ integer, the index of the new item in the history list, is
+ returned.
+
+ ** New gdb.events.gdb_exiting event. This event is called with a
+ gdb.GdbExitingEvent object which has the read-only attribute
+ 'exit_code', which contains the value of the GDB exit code. This
+ event is triggered once GDB decides it is going to exit, but
+ before GDB starts to clean up its internal state.
+
+ ** New function gdb.architecture_names(), which returns a list
+ containing all of the possible Architecture.name() values. Each
+ entry is a string.
+
+ ** New function gdb.Architecture.integer_type(), which returns an
+ integer type given a size and a signed-ness.
+
+ ** New gdb.TargetConnection object type that represents a connection
+ (as displayed by the 'info connections' command). A sub-class,
+ gdb.RemoteTargetConnection, is used to represent 'remote' and
+ 'extended-remote' connections.
+
+ ** The gdb.Inferior type now has a 'connection' property which is an
+ instance of gdb.TargetConnection, the connection used by this
+ inferior. This can be None if the inferior has no connection.
+
+ ** New 'gdb.events.connection_removed' event registry, which emits a
+ 'gdb.ConnectionEvent' when a connection is removed from GDB.
+ This event has a 'connection' property, a gdb.TargetConnection
+ object for the connection being removed.
+
+ ** New gdb.connections() function that returns a list of all
+ currently active connections.
+
+ ** New gdb.RemoteTargetConnection.send_packet(PACKET) method. This
+ is equivalent to the existing 'maint packet' CLI command; it
+ allows a user specified packet to be sent to the remote target.
+
+* New features in the GDB remote stub, GDBserver
+
+ ** GDBserver is now supported on OpenRISC GNU/Linux.
+
+* New native configurations
+
+GNU/Linux/OpenRISC or1k*-*-linux*
+
+*** Changes in GDB 11
+
+* 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
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.
+
+* For ARM targets, the "org.gnu.gdb.arm.m-profile-mve" feature is now
+ supported by GDB and describes a new VPR register from the ARM MVE
+ (Helium) extension. See the GDB manual for more information.
+
+* TUI improvements
+
+ ** TUI windows now support mouse actions. The mouse wheel scrolls
+ the appropriate window.
+
+ ** Key combinations that do not have a specific action on the
+ focused window are passed to GDB. For example, you now can use
+ Ctrl-Left/Ctrl-Right to move between words in the command window
+ regardless of which window is in focus. Previously you would
+ need to focus on the command window for such key combinations to
+ work.
+
* 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.
+
+maintenance info jit
+ Print the JIT code objects in the inferior known to GDB.
+
+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]
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'.
+
+info sources
+ The info sources command output has been restructured. The results
+ are now based around a list of objfiles (executable and libraries),
+ and for each objfile the source files that are part of that objfile
+ are listed.
+
+* 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.
+
+ ** Temporary breakpoints can now be created with make-breakpoint and
+ tested for using breakpoint-temporary?.
+
+* 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.
+
+ ** Python TUI windows can now receive mouse click events. If the
+ Window object implements the click method, it is called for each
+ mouse click event in this window.
+
*** Changes in GDB 10
* There are new feature names for ARC targets: "org.gnu.gdb.arc.core"
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...]
GNU/Linux/RISC-V (gdbserver) riscv*-*-linux*
BPF bpf-unknown-none
+Z80 z80-unknown-*
* Python API