GDB 15.1 released!
GDB 15.1 released!
Release 15.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 HTTPS server in the directory:
https://ftp.gnu.org/gnu/gdb/?C=M;O=D
The vital stats:
Size sha256sum Name 24MiB 38254eacd4572134bca9c5a5aa4d4ca564cbbd30c369d881f733fb6b903354f2 gdb-15.1.tar.xz 40MiB 8b61b0c2bdd9d9c83b113c9167866bdb474651d291fedcaa5eb7cde49bd47036 gdb-15.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 15.1 includes the following changes and enhancements:
* Building GDB and GDBserver now requires a C++17 compiler (for instance, GCC 9 or later).
* Enhanced Python support
** New function gdb.notify_mi(NAME, DATA), that emits custom GDB/MI async notification.
** New read/write attribute gdb.Value.bytes that contains a bytes object holding the contents of this value.
** New module gdb.missing_debug that facilitates dealing with objfiles that are missing any debug information.
** New function gdb.missing_debug.register_handler that can register an instance of a sub-class of gdb.missing_debug.MissingDebugInfo as a handler for objfiles that are missing debug information.
** New class gdb.missing_debug.MissingDebugInfo which can be sub-classed to create handlers for objfiles with missing debug information.
** Stop events now have a "details" attribute that holds a dictionary that carries the same information as an MI "*stopped" event.
** New function gdb.interrupt(), that interrupts GDB as if the user typed control-c.
** New gdb.InferiorThread.ptid_string attribute. This read-only attribute contains the string that appears in the 'Target Id' column of the 'info threads' command output.
** It is no longer possible to create new gdb.Progspace object using 'gdb.Progspace()', this will result in a TypeError. Progspace objects can still be obtained through calling other API functions, for example 'gdb.current_progspace()'.
** User defined attributes can be added to a gdb.Inferior object, these will be stored in the object's new Inferior.__dict__ attribute.
** User defined attributes can be added to a gdb.InferiorThread object, these will be stored in the object's new InferiorThread.__dict__ attribute.
** New constants gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN, and gdb.SEARCH_*_DOMAIN
* Debugger Adapter Protocol changes
** GDB now emits the "process" event.
** GDB now supports the "cancel" request.
** The "attach" request now supports specifying the program.
** New command "set debug dap-log-level" controls DAP logging.
* Remote protocol
** New stop reason: clone
** QThreadOptions in qSupported
** New remote packets: QThreadOptions, qIsAddressTagged
** New "set/show remote thread-options-packet" commands
* GDBserver
** The --remote-debug and --event-loop-debug command line options have been removed.
** The --debug command line option now takes an optional comma separated list of components to emit debug for. The currently supported components are: all, threads, event-loop, and remote. If no components are given then threads is assumed.
** The 'monitor set remote-debug' and 'monitor set event-loop-debug' command have been removed.
** The 'monitor set debug 0|1' command has been extended to take a component name, e.g.: 'monitor set debug COMPONENT off|on'. Possible component names are: all, threads, event-loop, and remote.
* Deprecated or removed
** The MPX commands "show/set mpx bound" have been deprecated, as Intel listed MPX as removed in 2019.
* Miscellaneous
** Guile API: New constants SYMBOL_TYPE_DOMAIN, SYMBOL_FUNCTION_DOMAIN, and SEARCH_*_DOMAIN
** New "set/show direct-call-timeout" commands.
** New "set/show indirect-call-timeout" commands.
** New "set/show unwind-on-timeout on|off" commands.
** New "set/show unwind-on-signal on|off" commands, renaming the old "set/show unwindonsignal" commands. The old commands are maintained as an alias.
** The "gcore" and "generate-core-file" commands now generates sparse core files, on systems that support it.
** The "maintenance info line-table" command now includes a new EPILOGUE-BEGIN column indicating the start of the function's epilogue.
** Simultaneous use of the 'r' and 'b' flags in the "disassemble" command now triggers an error.
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-15.1-release
-- Joel Brobecker
An update
LWN:
-
GDB 15.1 released
Version 15.1 of the GNU debugger has been released. Changes include a number of enhancements to GDB's Python support, some Debugger Adapter Protocol additions, some new GDBserver options, and more.