GDB 15.1 released!

Joel Brobecker
Sun Jul 7 18:02:39 GMT 2024

            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:;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:

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

  ** Stop events now have a "details" attribute that holds a
     dictionary that carries the same information as an MI "*stopped"

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

  ** User defined attributes can be added to a gdb.InferiorThread
     object, these will be stored in the object's new
     InferiorThread.__dict__ attribute.

     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

* Deprecated or removed

  ** The MPX commands "show/set mpx bound" have been deprecated, as Intel
     listed MPX as removed in 2019.

* Miscellaneous

     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:;a=blob_plain;f=gdb/NEWS;hb=gdb-15.1-release

Joel Brobecker

More information about the Gdb-announce mailing list