*** Changes since GDB 8.3
+* '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
architectures require kernel changes. TLS is not yet supported for
amd64 and i386 process core dumps.
-* Support for Pointer Authentication on AArch64 Linux.
+* 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 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.
+
+* 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.
+
+ ** 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.
+
+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 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 test-settings KIND
+maint show test-settings KIND
+ A set of commands used by the testsuite for exercising the settings
+ infrastructure.
+
+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.
+
+* 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.
+
+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]
+ -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 -r -p -o 0 -- *myptr
+
+ The above is equivalent to:
+
+ (gdb) print -raw -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'.
+
+* 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
*** Changes in GDB 8.3
* MI changes
- ** The default version of the MI interpreter is now 3 (-i=mi3).
-
** The '-data-disassemble' MI command now accepts an '-a' option to
disassemble the whole function surrounding the given program
counter value or function name. Support for this feature can be
** Command responses and notifications that include a frame now include
the frame's architecture in a new "arch" attribute.
- ** The output of information about multi-location breakpoints (which is
- syntactically incorrect in MI 2) has changed in MI 3. This affects
- the following commands and events:
-
- - -break-insert
- - -break-info
- - =breakpoint-created
- - =breakpoint-modified
-
- The -fix-multi-location-breakpoint-output command can be used to enable
- this behavior with previous MI versions.
-
* New native configurations
GNU/Linux/RISC-V riscv*-*-linux*