What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 7.9
+*** Changes since GDB 9
+
+* 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.
+
+*** Changes in GDB 9
+
+* 'thread-exited' event is now available in the annotations interface.
+
+* 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.
+
+* New built-in convenience functions $_gdb_setting, $_gdb_setting_str,
+ $_gdb_maint_setting and $_gdb_maint_setting_str provide access to values
+ of the GDB settings and the GDB maintenance settings. They are handy
+ for changing the logic of user defined commands depending on the
+ current GDB settings.
+
+* 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 (PAC) on AArch64 Linux. Return
+ addresses that required unmasking are shown in the backtrace with the
+ postfix [PAC].
+
+* Two new convenience functions $_cimag and $_creal that extract the
+ imaginary and real parts respectively from complex numbers.
+
+* New built-in convenience variables $_shell_exitcode and $_shell_exitsignal
+ provide the exitcode or exit status of the shell commands launched by
+ GDB commands such as "shell", "pipe" and "make".
+
+* The command define-prefix can now define user defined prefix commands.
+ User defined commands can now be defined using these user defined prefix
+ commands.
+
+* Command names can now use the . character.
+
+* The RX port now supports XML target descriptions.
+
+* GDB now shows the Ada task names at more places, e.g. in task switching
+ messages.
+
+* GDB can now be compiled with Python 3 on Windows.
+
+* New convenience variable $_ada_exception holds the address of the
+ Ada exception being thrown. This is set by Ada-related catchpoints.
+
+* GDB can now place breakpoints on nested functions and subroutines in
+ Fortran code. The '::' operator can be used between parent and
+ child scopes when placing breakpoints, for example:
+
+ (gdb) break outer_function::inner_function
+
+ The 'outer_function::' prefix is only needed if 'inner_function' is
+ not visible in the current scope.
+
+* In addition to the system-wide gdbinit file, if configured with
+ --with-system-gdbinit-dir, GDB will now also load files in that directory
+ as system gdbinit files, unless the -nx or -n flag is provided. Files
+ with extensions .gdb, .py and .scm are supported as long as GDB was
+ compiled with support for that language.
+
+* GDB now supports multithreaded symbol loading for higher performance.
+ This feature is still in testing, so it is disabled by default. You
+ can turn it on using 'maint set worker-threads unlimited'.
+
+* 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.
+
+* 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'.
+
+ ** gdb.Type has a new property 'objfile' which returns the objfile the
+ type was defined in.
+
+ ** The frame information printed by the python frame filtering code
+ is now consistent with what the 'backtrace' command prints when
+ there are no filters, or when the 'backtrace' '-no-filters' option
+ is given.
+
+ ** The new function gdb.lookup_static_symbol can be used to look up
+ symbols with static linkage.
+
+ ** The new function gdb.lookup_static_symbols can be used to look up
+ all static symbols with static linkage.
+
+ ** gdb.Objfile has new methods 'lookup_global_symbol' and
+ 'lookup_static_symbol' to lookup a symbol from this objfile only.
+
+ ** gdb.Block now supports the dictionary syntax for accessing symbols in
+ this block (e.g. block['local_variable']).
+
+* New commands
+
+| [COMMAND] | SHELL_COMMAND
+| -d DELIM COMMAND DELIM SHELL_COMMAND
+pipe [COMMAND] | SHELL_COMMAND
+pipe -d DELIM COMMAND DELIM SHELL_COMMAND
+ Executes COMMAND and sends its output to SHELL_COMMAND.
+ With no COMMAND, repeat the last executed command
+ and send its output to SHELL_COMMAND.
+
+define-prefix COMMAND
+ Define or mark a command as a user-defined prefix command.
+
+with SETTING [VALUE] [-- COMMAND]
+w SETTING [VALUE] [-- COMMAND]
+ Temporarily set SETTING, run COMMAND, and restore SETTING.
+ Usage: with SETTING -- COMMAND
+ With no COMMAND, repeats the last executed command.
+ SETTING is any GDB setting you can change with the "set"
+ subcommands. For example, 'with language c -- print someobj'
+ temporarily switches to the C language in order to print someobj.
+ Settings can be combined: 'w lang c -- w print elements unlimited --
+ usercmd' switches to the C language and runs usercmd with no limit
+ of array elements to print.
+
+maint with SETTING [VALUE] [-- COMMAND]
+ Like "with", but works with "maintenance set" settings.
+
+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.
+
+set print finish [on|off]
+show print finish
+ This controls whether the `finish' command will display the value
+ that is returned by the current function. When `off', the value is
+ still entered into the value history, but it is not printed. The
+ default is `on'.
+
+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.
+
+set print raw-values [on|off]
+show print raw-values
+ By default, GDB applies the enabled pretty printers when printing a
+ value. This allows to ignore the enabled pretty printers for a series
+ of commands. The default is 'off'.
+
+set logging debugredirect [on|off]
+ By default, GDB debug output will go to both the terminal and the logfile.
+ Set if you want debug output to go only to the log file.
+
+set style title foreground COLOR
+set style title background COLOR
+set style title intensity VALUE
+ Control the styling of titles.
+
+set style highlight foreground COLOR
+set style highlight background COLOR
+set style highlight intensity VALUE
+ Control the styling of highlightings.
+
+maint set worker-threads
+maint show worker-threads
+ Control the number of worker threads that can be used by GDB. The
+ default is 0. "unlimited" lets GDB choose a number that is
+ reasonable. Currently worker threads are only used when demangling
+ the names of linker symbols.
+
+set style tui-border foreground COLOR
+set style tui-border background COLOR
+ Control the styling of TUI borders.
+
+set style tui-active-border foreground COLOR
+set style tui-active-border background COLOR
+ Control the styling of the active TUI border.
+
+maint set test-settings KIND
+maint show test-settings KIND
+ A set of commands used by the testsuite for exercising the settings
+ infrastructure.
+
+maint set tui-resize-message [on|off]
+maint show tui-resize-message
+ Control whether GDB prints a message each time the terminal is
+ resized when in TUI mode. This is primarily useful for testing the
+ TUI.
+
+set print frame-info [short-location|location|location-and-address
+ |source-and-location|source-line|auto]
+show print frame-info
+ This controls what frame information is printed by the commands printing
+ a frame. This setting will e.g. influence the behaviour of 'backtrace',
+ 'frame', 'stepi'. The python frame filtering also respect this setting.
+ The 'backtrace' '-frame-info' option can override this global setting.
+
+set tui compact-source
+show tui compact-source
+
+ Enable the "compact" display mode for the TUI source window. The
+ compact display uses only as much space as is needed for the line
+ numbers in the current file, and only a single space to separate the
+ line numbers from the source.
+
+info modules [-q] [REGEXP]
+ Return a list of Fortran modules matching REGEXP, or all modules if
+ no REGEXP is given.
+
+info module functions [-q] [-m MODULE_REGEXP] [-t TYPE_REGEXP] [REGEXP]
+ Return a list of functions within all modules, grouped by module.
+ The list of functions can be restricted with the optional regular
+ expressions. MODULE_REGEXP matches against the module name,
+ TYPE_REGEXP matches against the function type signature, and REGEXP
+ matches against the function name.
+
+info module variables [-q] [-m MODULE_REGEXP] [-t TYPE_REGEXP] [REGEXP]
+ Return a list of variables within all modules, grouped by module.
+ The list of variables can be restricted with the optional regular
+ expressions. MODULE_REGEXP matches against the module name,
+ TYPE_REGEXP matches against the variable type, and REGEXP matches
+ against the variable name.
+
+set debug remote-packet-max-chars
+show debug remote-packet-max-chars
+ Controls the number of characters to output in a remote packet when using
+ "set debug remote".
+ The default is 512 bytes.
+
+info connections
+ Lists the target connections currently in use.
+
+* Changed commands
+
+help
+ The "help" command uses the title style to enhance the
+ readibility of its output by styling the classes and
+ command names.
+
+apropos [-v] REGEXP
+ Similarly to "help", the "apropos" command also uses the
+ title style for the command names. "apropos" accepts now
+ a flag "-v" (verbose) to show the full documentation
+ of matching commands and to use the highlight style to mark
+ the documentation parts matching REGEXP.
+
+printf
+eval
+ The GDB printf and eval commands can now print C-style and Ada-style
+ string convenience variables without calling functions in the program.
+ This allows to do formatted printing of strings without having
+ a running inferior, or when debugging a core dump.
+
+info sources [-dirname | -basename] [--] [REGEXP]
+ This command has now optional arguments to only print the files
+ whose names match REGEXP. The arguments -dirname and -basename
+ allow to restrict matching respectively to the dirname and basename
+ parts of the files.
+
+show style
+ The "show style" and its subcommands are now styling
+ a style name in their output using its own style, to help
+ the user visualize the different styles.
+
+set print frame-arguments
+ The new value 'presence' indicates to only indicate the presence of
+ arguments using ..., instead of printing argument names and values.
+
+set print raw-frame-arguments
+show print raw-frame-arguments
+
+ These commands replace the similarly-named "set/show print raw
+ frame-arguments" commands (now with a dash instead of a space). The
+ old commands are now deprecated and may be removed in a future
+ release.
+
+add-inferior [-no-connection]
+ The add-inferior command now supports a "-no-connection" flag that
+ makes the new inferior start with no target connection associated.
+ By default, the new inferior inherits the target connection of the
+ current inferior. See also "info connections".
+
+info inferior
+ This command's output now includes a new "Connection" column
+ indicating which target connection an inferior is bound to. See
+ "info connections" above.
+
+maint test-options require-delimiter
+maint test-options unknown-is-error
+maint test-options unknown-is-operand
+maint show test-options-completion-result
+ Commands used by the testsuite to validate the command options
+ framework.
+
+focus, winheight, +, -, >, <
+ These commands are now case-sensitive.
+
+* New command options, command completion
+
+ GDB now has a standard infrastructure to support dash-style command
+ options ('-OPT'). One benefit is that commands that use it can
+ easily support completion of command line arguments. Try "CMD
+ -[TAB]" or "help CMD" to find options supported by a command. Over
+ time, we intend to migrate most commands to this infrastructure. A
+ number of commands got support for new command options in this
+ release:
+
+ ** The "print" and "compile print" commands now support a number of
+ options that allow overriding relevant global print settings as
+ set by "set print" subcommands:
+
+ -address [on|off]
+ -array [on|off]
+ -array-indexes [on|off]
+ -elements NUMBER|unlimited
+ -null-stop [on|off]
+ -object [on|off]
+ -pretty [on|off]
+ -raw-values [on|off]
+ -repeats NUMBER|unlimited
+ -static-members [on|off]
+ -symbol [on|off]
+ -union [on|off]
+ -vtbl [on|off]
+
+ Note that because the "print"/"compile print" commands accept
+ arbitrary expressions which may look like options (including
+ abbreviations), if you specify any command option, then you must
+ use a double dash ("--") to mark the end of argument processing.
+
+ ** The "backtrace" command now supports a number of options that
+ allow overriding relevant global print settings as set by "set
+ backtrace" and "set print" subcommands:
+
+ -entry-values no|only|preferred|if-needed|both|compact|default
+ -frame-arguments all|scalars|none
+ -raw-frame-arguments [on|off]
+ -frame-info auto|source-line|location|source-and-location
+ |location-and-address|short-location
+ -past-main [on|off]
+ -past-entry [on|off]
+
+ In addition, the full/no-filters/hide qualifiers are now also
+ exposed as command options too:
+
+ -full
+ -no-filters
+ -hide
+
+ ** The "frame apply", "tfaas" and "faas" commands similarly now
+ support the following options:
+
+ -past-main [on|off]
+ -past-entry [on|off]
+
+ ** The new "info sources" options -dirname and -basename options
+ are using the standard '-OPT' infrastructure.
+
+ All options above can also be abbreviated. The argument of boolean
+ (on/off) options can be 0/1 too, and also the argument is assumed
+ "on" if omitted. This allows writing compact command invocations,
+ like for example:
+
+ (gdb) p -ra -p -o 0 -- *myptr
+
+ The above is equivalent to:
+
+ (gdb) print -raw-values -pretty -object off -- *myptr
+
+ ** The "info types" command now supports the '-q' flag to disable
+ printing of some header information in a similar fashion to "info
+ variables" and "info functions".
+
+ ** The "info variables", "info functions", and "whereis" commands
+ now take a '-n' flag that excludes non-debug symbols (symbols
+ from the symbol table, not from the debug info such as DWARF)
+ from the results.
+
+* Completion improvements
+
+ ** GDB can now complete the options of the "thread apply all" and
+ "taas" commands, and their "-ascending" option can now be
+ abbreviated.
+
+ ** GDB can now complete the options of the "info threads", "info
+ functions", "info variables", "info locals", and "info args"
+ commands.
+
+ ** GDB can now complete the options of the "compile file" and
+ "compile code" commands. The "compile file" command now
+ completes on filenames.
+
+ ** GDB can now complete the backtrace command's
+ "full/no-filters/hide" qualifiers.
+
+* In settings, you can now abbreviate "unlimited".
+
+ E.g., "set print elements u" is now equivalent to "set print
+ elements unlimited".
+
+* New MI commands
+
+-complete
+ This lists all the possible completions for the rest of the line, if it
+ were to be given as a command itself. This is intended for use by MI
+ frontends in cases when separate CLI and MI channels cannot be used.
+
+-catch-throw, -catch-rethrow, and -catch-catch
+ These can be used to catch C++ exceptions in a similar fashion to
+ the CLI commands 'catch throw', 'catch rethrow', and 'catch catch'.
+
+-symbol-info-functions, -symbol-info-types, and -symbol-info-variables
+ These commands are the MI equivalent of the CLI commands 'info
+ functions', 'info types', and 'info variables' respectively.
+
+-symbol-info-modules, this is the MI equivalent of the CLI 'info
+ modules' command.
+
+-symbol-info-module-functions and -symbol-info-module-variables.
+ These commands are the MI equivalent of the CLI commands 'info
+ module functions' and 'info module variables'.
+
+* Other MI changes
+
+ ** The default version of the MI interpreter is now 3 (-i=mi3).
+
+ ** 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.
+
+ ** Backtraces and frames include a new optional field addr_flags which is
+ given after the addr field. On AArch64 this contains PAC if the address
+ has been masked in the frame. On all other targets the field is not
+ present.
+
+* Testsuite
+
+ The testsuite now creates the files gdb.cmd (containing the arguments
+ used to launch GDB) and gdb.in (containing all the commands sent to
+ GDB) in the output directory for each test script. Multiple invocations
+ are appended with .1, .2, .3 etc.
+
+* Building GDB and GDBserver now requires GNU make >= 3.82.
+
+ Using another implementation of the make program or an earlier version of
+ GNU make to build GDB or GDBserver is not supported.
+
+* Building GDB now requires GNU readline >= 7.0.
+
+ GDB now bundles GNU readline 8.0, but if you choose to use
+ --with-system-readline, only readline >= 7.0 can be used.
+
+* The TUI SingleKey keymap is now named "SingleKey". This can be used
+ from .inputrc to bind keys in this keymap. This feature is only
+ available when gdb is built against GNU readline 8.0 or later.
+
+* Removed targets and native configurations
+
+ GDB no longer supports debugging the Cell Broadband Engine. This includes
+ both debugging standalone Cell/B.E. SPU applications and integrated debugging
+ of Cell/B.E. applications that use both the PPU and SPU architectures.
+
+* New Simulators
+
+TI PRU pru-*-elf
+
+* Removed targets and native configurations
+
+Solaris 10 i?86-*-solaris2.10, x86_64-*-solaris2.10,
+ sparc*-*-solaris2.10
+
+*** 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 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
+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 '-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.
+
+* 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
+ 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.
+
+* 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
+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.
+
+* 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
+ 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
+ but at the expense of not being able to perform symbolic debugging.
+ This option is intended for use cases where symbolic debugging will
+ not be used, e.g., when you only need to dump the debuggee's core.
+
+* GDB now uses the GNU MPFR library, if available, to emulate target
+ floating-point arithmetic during expression evaluation when the target
+ uses different floating-point formats than the host. At least version
+ 3.1 of GNU MPFR is required.
+
+* GDB now supports access to the guarded-storage-control registers and the
+ software-based guarded-storage broadcast control registers on IBM z14.
+
+* On Unix systems, GDB now supports transmitting environment variables
+ that are to be set or unset to GDBserver. These variables will
+ affect the environment to be passed to the remote inferior.
+
+ To inform GDB of environment variables that are to be transmitted to
+ GDBserver, use the "set environment" command. Only user set
+ environment variables are sent to GDBserver.
+
+ To inform GDB of environment variables that are to be unset before
+ the remote inferior is started by the GDBserver, use the "unset
+ environment" command.
+
+* Completion improvements
+
+ ** GDB can now complete function parameters in linespecs and
+ explicit locations without quoting. When setting breakpoints,
+ quoting around functions names to help with TAB-completion is
+ generally no longer necessary. For example, this now completes
+ correctly:
+
+ (gdb) b function(in[TAB]
+ (gdb) b function(int)
+
+ Related, GDB is no longer confused with completing functions in
+ C++ anonymous namespaces:
+
+ (gdb) b (anon[TAB]
+ (gdb) b (anonymous namespace)::[TAB][TAB]
+ (anonymous namespace)::a_function()
+ (anonymous namespace)::b_function()
+
+ ** GDB now has much improved linespec and explicit locations TAB
+ completion support, that better understands what you're
+ completing and offers better suggestions. For example, GDB no
+ longer offers data symbols as possible completions when you're
+ setting a breakpoint.
+
+ ** GDB now TAB-completes label symbol names.
+
+ ** 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
+ specifying all functions with the given name ignoring missing
+ leading scopes (namespaces and classes).
+
+ For example, assuming a C++ program with symbols named:
+
+ A::B::func()
+ B::func()
+
+ both commands "break func()" and "break B::func()" set a breakpoint
+ on both symbols.
+
+ You can use the new flag "-qualified" to override this. This makes
+ 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. 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 can now set breakpoints on functions marked with C++ ABI tags
+ (e.g., [abi:cxx11]). See here for a description of ABI tags:
+ https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/
+
+ Functions with a C++11 abi tag are demangled/displayed like this:
+
+ function[abi:cxx11](int)
+ ^^^^^^^^^^^
+
+ You can now set a breakpoint on such functions simply as if they had
+ no tag, like:
+
+ (gdb) b function(int)
+
+ Or if you need to disambiguate between tags, like:
+
+ (gdb) b function[abi:other_tag](int)
+
+ Tab completion was adjusted accordingly as well.
+
+* Python Scripting
+
+ ** New events gdb.new_inferior, gdb.inferior_deleted, and
+ gdb.new_thread are emitted. See the manual for further
+ description of these.
+
+ ** 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
+
+ ** GDBserver is now able to start inferior processes with a
+ specified initial working directory.
+
+ The user can set the desired working directory to be used from
+ GDB using the new "set cwd" command.
+
+ ** New "--selftest" command line option runs some GDBserver self
+ tests. These self tests are disabled in releases.
+
+ ** On Unix systems, GDBserver now does globbing expansion and variable
+ substitution in inferior command line arguments.
+
+ This is done by starting inferiors using a shell, like GDB does.
+ See "set startup-with-shell" in the user manual for how to disable
+ this from GDB when using "target extended-remote". When using
+ "target remote", you can disable the startup with shell by using the
+ new "--no-startup-with-shell" GDBserver command line option.
+
+ ** On Unix systems, GDBserver now supports receiving environment
+ variables that are to be set or unset from GDB. These variables
+ will affect the environment to be passed to the inferior.
+
+* When catching an Ada exception raised with a message, GDB now prints
+ the message in the catchpoint hit notification. In GDB/MI mode, that
+ 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
+ Inform GDBserver of an environment variable that is to be passed to
+ the inferior when starting it.
+
+QEnvironmentUnset
+ Inform GDBserver of an environment variable that is to be unset
+ before starting the remote inferior.
+
+QEnvironmentReset
+ Inform GDBserver that the environment should be reset (i.e.,
+ user-set environment variables should be unset).
+
+QStartupWithShell
+ Indicates whether the inferior must be started with a shell or not.
+
+QSetWorkingDir
+ Tell GDBserver that the inferior to be started should use a specific
+ working directory.
+
+* The "maintenance print c-tdesc" command now takes an optional
+ argument which is the file name of XML target description.
+
+* The "maintenance selftest" command now takes an optional argument to
+ filter the tests to be run.
+
+* The "enable", and "disable" commands now accept a range of
+ breakpoint locations, e.g. "enable 1.3-5".
+
+* New commands
+
+set|show cwd
+ Set and show the current working directory for the inferior.
+
+set|show compile-gcc
+ Set and show compilation command used for compiling and injecting code
+ with the 'compile' commands.
+
+set debug separate-debug-file
+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.
+
+* Safer/improved support for debugging with no debug info
+
+ GDB no longer assumes functions with no debug information return
+ 'int'.
+
+ This means that GDB now refuses to call such functions unless you
+ tell it the function's type, by either casting the call to the
+ declared return type, or by casting the function to a function
+ pointer of the right type, and calling that:
+
+ (gdb) p getenv ("PATH")
+ 'getenv' has unknown return type; cast the call to its declared return type
+ (gdb) p (char *) getenv ("PATH")
+ $1 = 0x7fffffffe "/usr/local/bin:/"...
+ (gdb) p ((char * (*) (const char *)) getenv) ("PATH")
+ $2 = 0x7fffffffe "/usr/local/bin:/"...
+
+ Similarly, GDB no longer assumes that global variables with no debug
+ info have type 'int', and refuses to print the variable's value
+ unless you tell it the variable's type:
+
+ (gdb) p var
+ 'var' has unknown type; cast it to its declared type
+ (gdb) p (float) var
+ $3 = 3.14
+
+* New native configurations
+
+FreeBSD/aarch64 aarch64*-*-freebsd*
+FreeBSD/arm arm*-*-freebsd*
+
+* New targets
+
+FreeBSD/aarch64 aarch64*-*-freebsd*
+FreeBSD/arm arm*-*-freebsd*
+OpenRISC ELF or1k*-*-elf
+
+* Removed targets and native configurations
+
+Solaris 2.0-9 i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9]
+
+*** Changes in GDB 8.0
+
+* GDB now supports access to the PKU register on GNU/Linux. The register is
+ added by the Memory Protection Keys for Userspace feature which will be
+ available in future Intel CPUs.
+
+* GDB now supports C++11 rvalue references.
+
+* Python Scripting
+
+ ** New functions to start, stop and access a running btrace recording.
+ ** Rvalue references are now supported in gdb.Type.
+
+* GDB now supports recording and replaying rdrand and rdseed Intel 64
+ instructions.
+
+* Building GDB and GDBserver now requires a C++11 compiler.
+
+ For example, GCC 4.8 or later.
+
+ It is no longer possible to build GDB or GDBserver with a C
+ compiler. The --disable-build-with-cxx configure option has been
+ removed.
+
+* Building GDB and GDBserver now requires GNU make >= 3.81.
+
+ It is no longer supported to build GDB or GDBserver with another
+ implementation of the make program or an earlier version of GNU make.
+
+* Native debugging on MS-Windows supports command-line redirection
+
+ Command-line arguments used for starting programs on MS-Windows can
+ now include redirection symbols supported by native Windows shells,
+ such as '<', '>', '>>', '2>&1', etc. This affects GDB commands such
+ as "run", "start", and "set args", as well as the corresponding MI
+ features.
+
+* Support for thread names on MS-Windows.
+
+ GDB now catches and handles the special exception that programs
+ running on MS-Windows use to assign names to threads in the
+ debugger.
+
+* Support for Java programs compiled with gcj has been removed.
+
+* User commands now accept an unlimited number of arguments.
+ Previously, only up to 10 was accepted.
+
+* The "eval" command now expands user-defined command arguments.
+
+ This makes it easier to process a variable number of arguments:
+
+ define mycommand
+ set $i = 0
+ while $i < $argc
+ eval "print $arg%d", $i
+ set $i = $i + 1
+ end
+ end
+
+* Target descriptions can now describe registers for sparc32 and sparc64.
+
+* GDB now supports DWARF version 5 (debug information format).
+ Its .debug_names index is not yet supported.
+
+* New native configurations
+
+FreeBSD/mips mips*-*-freebsd
+
+* New targets
+
+Synopsys ARC arc*-*-elf32
+FreeBSD/mips mips*-*-freebsd
+
+* Removed targets and native configurations
+
+Alpha running FreeBSD alpha*-*-freebsd*
+Alpha running GNU/kFreeBSD alpha*-*-kfreebsd*-gnu
+
+* New commands
+
+flash-erase
+ Erases all the flash memory regions reported by the target.
+
+maint print arc arc-instruction address
+ Print internal disassembler information about instruction at a given address.
+
+* New options
+
+set disassembler-options
+show disassembler-options
+ Controls the passing of target specific information to the disassembler.
+ If it is necessary to specify more than one disassembler option then
+ multiple options can be placed together into a comma separated list.
+ The default value is the empty string. Currently, the only supported
+ targets are ARM, PowerPC and S/390.
+
+* New MI commands
+
+-target-flash-erase
+ Erases all the flash memory regions reported by the target. This is
+ equivalent to the CLI command flash-erase.
+
+-file-list-shared-libraries
+ 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.
+
+ The --enable-build-with-cxx configure option is now enabled by
+ default. One must now explicitly configure with
+ --disable-build-with-cxx in order to build with a C compiler. This
+ option will be removed in a future release.
+
+* GDBserver now supports recording btrace without maintaining an active
+ GDB connection.
+
+* GDB now supports a negative repeat count in the 'x' command to examine
+ memory backward from the given address. For example:
+
+ (gdb) bt
+ #0 Func1 (n=42, p=0x40061c "hogehoge") at main.cpp:4
+ #1 0x400580 in main (argc=1, argv=0x7fffffffe5c8) at main.cpp:8
+ (gdb) x/-5i 0x0000000000400580
+ 0x40056a <main(int, char**)+8>: mov %edi,-0x4(%rbp)
+ 0x40056d <main(int, char**)+11>: mov %rsi,-0x10(%rbp)
+ 0x400571 <main(int, char**)+15>: mov $0x40061c,%esi
+ 0x400576 <main(int, char**)+20>: mov $0x2a,%edi
+ 0x40057b <main(int, char**)+25>:
+ callq 0x400536 <Func1(int, char const*)>
+
+* Fortran: Support structures with fields of dynamic types and
+ arrays of dynamic types.
+
+* The symbol dumping maintenance commands have new syntax.
+maint print symbols [-pc address] [--] [filename]
+maint print symbols [-objfile objfile] [-source source] [--] [filename]
+maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
+maint print psymbols [-objfile objfile] [-source source] [--] [filename]
+maint print msymbols [-objfile objfile] [--] [filename]
+
+* GDB now supports multibit bitfields and enums in target register
+ descriptions.
+
+* New Python-based convenience function $_as_string(val), which returns
+ the textual representation of a value. This function is especially
+ useful to obtain the text label of an enum value.
+
+* Intel MPX bound violation handling.
+
+ Segmentation faults caused by a Intel MPX boundary violation
+ now display the kind of violation (upper or lower), the memory
+ address accessed and the memory bounds, along with the usual
+ signal received and code location.
+
+ For example:
+
+ Program received signal SIGSEGV, Segmentation fault
+ Upper bound violation while accessing address 0x7fffffffc3b3
+ Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3]
+ 0x0000000000400d7c in upper () at i386-mpx-sigsegv.c:68
+
+* Rust language support.
+ GDB now supports debugging programs written in the Rust programming
+ language. See https://www.rust-lang.org/ for more information about
+ Rust.
+
+* Support for running interpreters on specified input/output devices
+
+ GDB now supports a new mechanism that allows frontends to provide
+ fully featured GDB console views, as a better alternative to
+ building such views on top of the "-interpreter-exec console"
+ command. See the new "new-ui" command below. With that command,
+ frontends can now start GDB in the traditional command-line mode
+ running in an embedded terminal emulator widget, and create a
+ separate MI interpreter running on a specified i/o device. In this
+ way, GDB handles line editing, history, tab completion, etc. in the
+ console all by itself, and the GUI uses the separate MI interpreter
+ for its own control and synchronization, invisible to the command
+ line.
+
+* The "catch syscall" command catches groups of related syscalls.
+
+ The "catch syscall" command now supports catching a group of related
+ syscalls using the 'group:' or 'g:' prefix.
+
+* New commands
+
+skip -file file
+skip -gfile file-glob-pattern
+skip -function function
+skip -rfunction regular-expression
+ A generalized form of the skip command, with new support for
+ glob-style file names and regular expressions for function names.
+ Additionally, a file spec and a function spec may now be combined.
+
+maint info line-table REGEXP
+ Display the contents of GDB's internal line table data struture.
+
+maint selftest
+ Run any GDB unit tests that were compiled in.
+
+new-ui INTERP TTY
+ Start a new user interface instance running INTERP as interpreter,
+ using the TTY file for input/output.
+
+* Python Scripting
+
+ ** gdb.Breakpoint objects have a new attribute "pending", which
+ indicates whether the breakpoint is pending.
+ ** Three new breakpoint-related events have been added:
+ gdb.breakpoint_created, gdb.breakpoint_modified, and
+ gdb.breakpoint_deleted.
+
+signal-event EVENTID
+ Signal ("set") the given MS-Windows event object. This is used in
+ conjunction with the Windows JIT debugging (AeDebug) support, where
+ the OS suspends a crashing process until a debugger can attach to
+ it. Resuming the crashing process, in order to debug it, is done by
+ signalling an event.
+
+* Support for tracepoints and fast tracepoints on s390-linux and s390x-linux
+ was added in GDBserver, including JIT compiling fast tracepoint's
+ conditional expression bytecode into native code.
+
+* Support for various remote target protocols and ROM monitors has
+ been removed:
+
+ target m32rsdi Remote M32R debugging over SDI
+ target mips MIPS remote debugging protocol
+ target pmon PMON ROM monitor
+ target ddb NEC's DDB variant of PMON for Vr4300
+ target rockhopper NEC RockHopper variant of PMON
+ target lsi LSI variant of PMO
+
+* Support for tracepoints and fast tracepoints on powerpc-linux,
+ powerpc64-linux, and powerpc64le-linux was added in GDBserver,
+ including JIT compiling fast tracepoint's conditional expression
+ bytecode into native code.
+
+* MI async record =record-started now includes the method and format used for
+ recording. For example:
+
+ =record-started,thread-group="i1",method="btrace",format="bts"
+
+* MI async record =thread-selected now includes the frame field. For example:
+
+ =thread-selected,id="3",frame={level="0",addr="0x00000000004007c0"}
+
+* New targets
+
+Andes NDS32 nds32*-*-elf
+
+*** Changes in GDB 7.11
+
+* GDB now supports debugging kernel-based threads on FreeBSD.
+
+* Per-inferior thread numbers
+
+ Thread numbers are now per inferior instead of global. If you're
+ debugging multiple inferiors, GDB displays thread IDs using a
+ qualified INF_NUM.THR_NUM form. For example:
+
+ (gdb) info threads
+ Id Target Id Frame
+ 1.1 Thread 0x7ffff7fc2740 (LWP 8155) (running)
+ 1.2 Thread 0x7ffff7fc1700 (LWP 8168) (running)
+ * 2.1 Thread 0x7ffff7fc2740 (LWP 8157) (running)
+ 2.2 Thread 0x7ffff7fc1700 (LWP 8190) (running)
+
+ As consequence, thread numbers as visible in the $_thread
+ convenience variable and in Python's InferiorThread.num attribute
+ are no longer unique between inferiors.
+
+ GDB now maintains a second thread ID per thread, referred to as the
+ global thread ID, which is the new equivalent of thread numbers in
+ previous releases. See also $_gthread below.
+
+ For backwards compatibility, MI's thread IDs always refer to global
+ IDs.
+
+* Commands that accept thread IDs now accept the qualified
+ INF_NUM.THR_NUM form as well. For example:
+
+ (gdb) thread 2.1
+ [Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running)
+ (gdb)
+
+* In commands that accept a list of thread IDs, you can now refer to
+ all threads of an inferior using a star wildcard. GDB accepts
+ "INF_NUM.*", to refer to all threads of inferior INF_NUM, and "*" to
+ refer to all threads of the current inferior. For example, "info
+ threads 2.*".
+
+* You can use "info threads -gid" to display the global thread ID of
+ all threads.
+
+* The new convenience variable $_gthread holds the global number of
+ the current thread.
+
+* The new convenience variable $_inferior holds the number of the
+ current inferior.
+
+* GDB now displays the ID and name of the thread that hit a breakpoint
+ or received a signal, if your program is multi-threaded. For
+ example:
+
+ Thread 3 "bar" hit Breakpoint 1 at 0x40087a: file program.c, line 20.
+ Thread 1 "main" received signal SIGINT, Interrupt.
+
+* Record btrace now supports non-stop mode.
+
+* Support for tracepoints on aarch64-linux was added in GDBserver.
+
+* The 'record instruction-history' command now indicates speculative execution
+ when using the Intel Processor Trace recording format.
+
+* GDB now allows users to specify explicit locations, bypassing
+ the linespec parser. This feature is also available to GDB/MI
+ clients.
+
+* Multi-architecture debugging is supported on AArch64 GNU/Linux.
+ GDB now is able to debug both AArch64 applications and ARM applications
+ at the same time.
+
+* Support for fast tracepoints on aarch64-linux was added in GDBserver,
+ including JIT compiling fast tracepoint's conditional expression bytecode
+ into native code.
+
+* GDB now supports displaced stepping on AArch64 GNU/Linux.
+
+* "info threads", "info inferiors", "info display", "info checkpoints"
+ and "maint info program-spaces" now list the corresponding items in
+ ascending ID order, for consistency with all other "info" commands.
+
+* In Ada, the overloads selection menu has been enhanced to display the
+ parameter types and the return types for the matching overloaded subprograms.
+
+* New commands
+
+maint set target-non-stop (on|off|auto)
+maint show target-non-stop
+ Control whether GDB targets always operate in non-stop mode even if
+ "set non-stop" is "off". The default is "auto", meaning non-stop
+ mode is enabled if supported by the target.
+
+maint set bfd-sharing
+maint show bfd-sharing
+ Control the reuse of bfd objects.
+
+set debug bfd-cache
+show debug bfd-cache
+ Control display of debugging info regarding bfd caching.
+
+set debug fbsd-lwp
+show debug fbsd-lwp
+ Control display of debugging info regarding FreeBSD threads.
+
+set remote multiprocess-extensions-packet
+show remote multiprocess-extensions-packet
+ Set/show the use of the remote protocol multiprocess extensions.
+
+set remote thread-events
+show remote thread-events
+ Set/show the use of thread create/exit events.
+
+set ada print-signatures on|off
+show ada print-signatures"
+ Control whether parameter types and return types are displayed in overloads
+ selection menus. It is activaled (@code{on}) by default.
+
+set max-value-size
+show max-value-size
+ Controls the maximum size of memory, in bytes, that GDB will
+ allocate for value contents. Prevents incorrect programs from
+ causing GDB to allocate overly large buffers. Default is 64k.
+
+* The "disassemble" command accepts a new modifier: /s.
+ It prints mixed source+disassembly like /m with two differences:
+ - disassembled instructions are now printed in program order, and
+ - and source for all relevant files is now printed.
+ The "/m" option is now considered deprecated: its "source-centric"
+ output hasn't proved useful in practice.
+
+* The "record instruction-history" command accepts a new modifier: /s.
+ It behaves exactly like /m and prints mixed source+disassembly.
+
+* The "set scheduler-locking" command supports a new mode "replay".
+ It behaves like "off" in record mode and like "on" in replay mode.
+
+* Support for various ROM monitors has been removed:
+
+ target dbug dBUG ROM monitor for Motorola ColdFire
+ target picobug Motorola picobug monitor
+ target dink32 DINK32 ROM monitor for PowerPC
+ target m32r Renesas M32R/D ROM monitor
+ target mon2000 mon2000 ROM monitor
+ target ppcbug PPCBUG ROM monitor for PowerPC
+
+* 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
+ Indicates that an exec system call was executed.
+
+exec-events feature in qSupported
+ The qSupported packet allows GDB to request support for exec
+ events using the new 'gdbfeature' exec-event, and the qSupported
+ response can contain the corresponding 'stubfeature'. Set and
+ show commands can be used to display whether these features are enabled.
+
+vCtrlC
+ Equivalent to interrupting with the ^C character, but works in
+ non-stop mode.
+
+thread created stop reason (T05 create:...)
+ Indicates that the thread was just created and is stopped at entry.
+
+thread exit stop reply (w exitcode;tid)
+ Indicates that the thread has terminated.
+
+QThreadEvents
+ Enables/disables thread create and exit event reporting. For
+ example, this is used in non-stop mode when GDB stops a set of
+ threads and synchronously waits for the their corresponding stop
+ replies. Without exit events, if one of the threads exits, GDB
+ would hang forever not knowing that it should no longer expect a
+ stop for that same thread.
+
+N stop reply
+ Indicates that there are no resumed threads left in the target (all
+ threads are stopped). The remote stub reports support for this stop
+ reply to GDB's qSupported query.
+
+QCatchSyscalls
+ Enables/disables catching syscalls from the inferior process.
+ The remote stub reports support for this packet to GDB's qSupported query.
+
+syscall_entry stop reason
+ Indicates that a syscall was just called.
+
+syscall_return stop reason
+ Indicates that a syscall just returned.
+
+* Extended-remote exec events
+
+ ** GDB now has support for exec events on extended-remote Linux targets.
+ For such targets with Linux kernels 2.5.46 and later, this enables
+ follow-exec-mode and exec catchpoints.
+
+set remote exec-event-feature-packet
+show remote exec-event-feature-packet
+ Set/show the use of the remote exec event feature.
+
+ * Thread names in remote protocol
+
+ The reply to qXfer:threads:read may now include a name attribute for each
+ thread.
+
+* Target remote mode fork and exec events
+
+ ** GDB now has support for fork and exec events on target remote mode
+ Linux targets. For such targets with Linux kernels 2.5.46 and later,
+ this enables follow-fork-mode, detach-on-fork, follow-exec-mode, and
+ fork and exec catchpoints.
+
+* Remote syscall events
+
+ ** GDB now has support for catch syscall on remote Linux targets,
+ currently enabled on x86/x86_64 architectures.
+
+set remote catch-syscall-packet
+show remote catch-syscall-packet
+ Set/show the use of the remote catch syscall feature.
+
+* MI changes
+
+ ** The -var-set-format command now accepts the zero-hexadecimal
+ format. It outputs data in hexadecimal format with zero-padding on the
+ left.
+
+* Python Scripting
+
+ ** gdb.InferiorThread objects have a new attribute "global_num",
+ which refers to the thread's global thread ID. The existing
+ "num" attribute now refers to the thread's per-inferior number.
+ See "Per-inferior thread numbers" above.
+ ** gdb.InferiorThread objects have a new attribute "inferior", which
+ is the Inferior object the thread belongs to.
+
+*** Changes in GDB 7.10
* Support for process record-replay and reverse debugging on aarch64*-linux*
targets has been added. GDB now supports recording of A64 instruction set
including advance SIMD instructions.
+* Support for Sun's version of the "stabs" debug file format has been removed.
+
* GDB now honors the content of the file /proc/PID/coredump_filter
(PID is the process ID) on GNU/Linux systems. This file can be used
to specify the types of memory mappings that will be included in a
* GDB now supports the vector ABI on S/390 GNU/Linux targets.
+* On GNU/Linux, GDB and gdbserver are now able to access executable
+ and shared library files without a "set sysroot" command when
+ attaching to processes running in different mount namespaces from
+ the debugger. This makes it possible to attach to processes in
+ containers as simply as "gdb -p PID" or "gdbserver --attach PID".
+ See "New remote packets" below.
+
+* The "tui reg" command now provides completion for all of the
+ available register groups, including target specific groups.
+
+* The HISTSIZE environment variable is no longer read when determining
+ the size of GDB's command history. GDB now instead reads the dedicated
+ GDBHISTSIZE environment variable. Setting GDBHISTSIZE to "-1" or to "" now
+ disables truncation of command history. Non-numeric values of GDBHISTSIZE
+ are ignored.
+
* Guile Scripting
** Memory ports can now be unbuffered.
tui disable
Explicit commands for enabling and disabling tui mode.
+show mpx bound
+set mpx bound on i386 and amd64
+ Support for bound table investigation on Intel MPX enabled applications.
+
+record btrace pt
+record pt
+ Start branch trace recording using Intel Processor Trace format.
+
+maint info btrace
+ Print information about branch tracing internals.
+
+maint btrace packet-history
+ Print the raw branch tracing data.
+
+maint btrace clear-packet-history
+ Discard the stored raw branch tracing data.
+
+maint btrace clear
+ Discard all branch tracing data. It will be fetched and processed
+ anew by the next "record" command.
+
* New options
+set debug dwarf-die
+ Renamed from "set debug dwarf2-die".
+show debug dwarf-die
+ Renamed from "show debug dwarf2-die".
+
+set debug dwarf-read
+ Renamed from "set debug dwarf2-read".
+show debug dwarf-read
+ Renamed from "show debug dwarf2-read".
+
+maint set dwarf always-disassemble
+ Renamed from "maint set dwarf2 always-disassemble".
+maint show dwarf always-disassemble
+ Renamed from "maint show dwarf2 always-disassemble".
+
+maint set dwarf max-cache-age
+ Renamed from "maint set dwarf2 max-cache-age".
+maint show dwarf max-cache-age
+ Renamed from "maint show dwarf2 max-cache-age".
+
+set debug dwarf-line
+show debug dwarf-line
+ Control display of debugging info regarding DWARF line processing.
+
set max-completions
show max-completions
Set the maximum number of candidates to be considered during
to avoid generating large completion lists, the computation of
which can cause the debugger to become temporarily unresponsive.
+set history remove-duplicates
+show history remove-duplicates
+ Control the removal of duplicate history entries.
+
maint set symbol-cache-size
maint show symbol-cache-size
Control the size of the symbol cache.
The obtained size may differ from the requested size. Use "info
record" to see the obtained buffer size.
+set debug linux-namespaces
+show debug linux-namespaces
+ Control display of debugging info regarding Linux namespaces.
+
+set|show record btrace pt buffer-size
+ Set and show the size of the ring buffer used for branch tracing in
+ Intel Processor Trace format.
+ The obtained size may differ from the requested size. Use "info
+ record" to see the obtained buffer size.
+
+maint set|show btrace pt skip-pad
+ Set and show whether PAD packets are skipped when computing the
+ packet history.
+
* The command 'thread apply all' can now support new option '-ascending'
to call its specified command for all threads in ascending order.
Qbtrace-conf:bts:size
Set the requested ring buffer size for branch tracing in BTS format.
+Qbtrace:pt
+ Enable Intel Procesor Trace-based branch tracing for the current
+ process. The remote stub reports support for this packet to GDB's
+ qSupported query.
+
+Qbtrace-conf:pt:size
+ Set the requested ring buffer size for branch tracing in Intel Processor
+ Trace format.
+
swbreak stop reason
Indicates a memory breakpoint instruction was executed, irrespective
of whether it was GDB that planted the breakpoint or the breakpoint
Return the full absolute name of the file that was executed to
create a process running on the remote system.
+vFile:setfs:
+ Select the filesystem on which vFile: operations with filename
+ arguments will operate. This is required for GDB to be able to
+ access files on remote targets where the remote stub does not
+ share a common filesystem with the inferior(s).
+
fork stop reason
Indicates that a fork system call was executed.
HP/PA running HP-UX hppa*-*-hpux*
Itanium running HP-UX ia64-*-hpux*
+* New configure options
+
+--with-intel-pt
+ This configure option allows the user to build GDB with support for
+ Intel Processor Trace (default: auto). This requires libipt.
+
+--with-libipt-prefix=PATH
+ Specify the path to the version of libipt that GDB should use.
+ $PATH/include should contain the intel-pt.h header and
+ $PATH/lib should contain the libipt.so library.
+
*** Changes in GDB 7.9.1
* Python Scripting
can be used to launch native programs even when "set
auto-connect-native-target" is set to off.
-* GDB now supports access to Intel(R) MPX registers on GNU/Linux.
+* GDB now supports access to Intel MPX registers on GNU/Linux.
-* Support for Intel(R) AVX-512 registers on GNU/Linux.
- Support displaying and modifying Intel(R) AVX-512 registers
+* Support for Intel AVX-512 registers on GNU/Linux.
+ Support displaying and modifying Intel AVX-512 registers
$zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
* New remote packets