[ANNOUNCEMENT] GDB 11.1 released!

Joel Brobecker
2021-09-13T02:52:15Z

GDB 11.1 released!

Release 11.1 of GDB, the GNU Debugger, is now available. GDB is
a source-level debugger for Ada, C, C++, Fortran, Go, Rust, and many
other languages. GDB can target (i.e., debug programs running on)
more than a dozen different processor architectures, and GDB itself
can run on most popular GNU/Linux, Unix and Microsoft Windows variants.
GDB is free (libre) software.

You can download GDB from the GNU FTP server in the directory:

ftp://ftp.gnu.org/gnu/gdb

The vital stats:

Size md5sum Name
22MiB 257cb0f67927f79acf636d8c01e19990 gdb-11.1.tar.xz
37MiB eb6596d83bdccea06caa6d49d923e119 gdb-11.1.tar.gz

There is a web page for GDB at:

https://www.gnu.org/software/gdb/

That page includes information about GDB mailing lists (an announcement
mailing list, developers discussion lists, etc.), details on how to
access GDB's source repository, locations for development snapshots,
preformatted documentation, and links to related information around
the net. We will put errata notes and host-specific tips for this release
on-line as any problems come up. All mailing lists archives are also
browsable via the web.

GDB 11.1 includes the following changes and enhancements:

* Support for ARM Symbian (arm*-*-symbianelf*) has been removed.

* Building GDB now requires GMP (The GNU Multiple Precision Arithmetic
Library).

* New command-line options "--early-init-command" (or "-eix")
and "--early-init-eval-command" (or "-eiex")

* GDB/MI Changes:

** New --qualified option for the '-break-insert' and '-dprintf-insert'
commands.

** New --force-condition option for the '-break-insert' and
'-dprintf-insert' commands.

** New --force option for the '-break-condition' command.

** The '-file-list-exec-source-files' now accepts an optional regular
expression to filter the source files included in the result.

** The results from '-file-list-exec-source-files' now include
a 'debug-fully-read' field to indicate if the corresponding
source's debugging information has been partially read (false)
or has been fully read (true).

* TUI Improvements:

** Mouse actions are now supported. The mouse wheel scrolls
the appropriate window.

** Key combinations that do not have a specific action on the
focused window are now passed to GDB.

* Python enhancements:

** 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.

** New setting "python ignore-environment on|off"; if "on", causes
GDB's builtin Python to ignore any environment variable that would
otherwise affect how Python behaves (needs to be set during
"early initialization" (see above).

** New setting "python dont-write-bytecode auto|on|off".

* Guile API enhancements:

** Improved support for rvalue reference values.

** New procedures for obtaining value variants:
value-reference-value, value-rvalue-reference-value and
value-const-value.

* New "qMemTags" and "QMemTags" remote protocol packets
(associated with Memory Tagging).

* 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.

* The "break [...] if CONDITION" command no longer returns an error
when the condition is invalid at one or more locations. Instead,
if the condition is valid at one or more locations, the locations
where the condition is not valid are disabled.

The behavior of the "condition" command is changed to match
the new behavior of the "break" command.

* Support for general memory tagging functionality (currently limited
to AArch64 MTE)

* Core file debugging now supported for x86_64 Cygwin programs.

* New "org.gnu.gdb.riscv.vector" feature for RISC-V targets.

* 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.

* Miscellaneous:

** New "startup-quietly on|off" setting; when "on", behaves the same
as passing the "-silent" option on the command line.

** New "print type hex on|off" setting; when 'on', the 'ptype' command
uses hexadecimal notation to print sizes and offsets of struct
members. When 'off', decimal notation is used.

** The "inferior" command, when run without argument, prints
information about the current inferior.

** The "ptype" command now supports "/x" and "/d", affecting the base
used to print sizes and offsets.

** The output of the "info source" has been restructured.

** New "style version foreground | background | intensity" commands
to control the styling of the GDB version number.

** Various debug and maintenance commands (mostly useful for
the GDB developers)

For a complete list and more details on each item, please see the gdb/NEWS
file, available at:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-11.1-release

--
Joel Brobecker