Release 9.2 of GDB, the GNU Debugger, is now available. GDB is
a source-level debugger for Ada, C, C++, 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:
The vital stats:
Size md5sum Name
21MiB db95524e554870209ab7d9f8fd8dc557 gdb-9.2.tar.xz
38MiB 3899ef01c672b19ec63ced445b8abc42 gdb-9.2.tar.gz
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 9.2 brings the following fixes and enhancements over GDB 9.1:
* PR tui/25586 (Resizing the source/disassembly or command window produces corrupted display)
* PR gdb/25650 (GDB can't 'printf' a convenience variable holding an inferior address)
* PR build/25981 (Use of short i386 register names breaks compilation on recent Solaris 11.4)
* PR symtab/26003 (infinite loop loading symbols from separate debug objfile)
* PR build/26029 (GDB build failure on SPARC)
GDB 9.1 includes the following changes and enhancements:
* Building GDB and GDBserver now requires GNU make >= 3.82.
* If you choose to build GDB without using the GNU readline version bundled
with the GDB sources, building GDB new requires GNU readline >= 7.0.
* Removed targets and native configurations:
- GDB no longer supports debugging the Cell Broadband Engine;
- GDB no longer supports Solaris 10.
* New TI PRU Simulator (pru-*-elf).
* Python Enhancements:
- GDB can now be compiled with Python 3 on Windows;
- Various Python API enhancements;
* Usability enhancements:
- [experimental] Multithreaded symbol loading for higher performance
(turned off by default, use 'maint set worker-threads unlimited'
to turn this feature on);
- Command names can now use the '.' character;
- GDB can now place breakpoints on nested functions and subroutines
- GDB now shows the Ada task names at more places, e.g. in task switching
- Styling enhancements to various commands to improve readability.
- 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.
* Enhancements to existing commands:
- "printf" and "eval" can now print C-style and Ada-style strings
without calling functions in the program;
- "info sources" has been enhance to allow only printing files
whose name match a REGEXP;
- New value "presence" for the "set print frame-arguments" setting,
to only indicate the presence of arguments with '...' instead
of printing the argument names and values;
- The "focus", "winheight", "+", "-", ">", "<" TUI commands are
now case sensitive;
- New options support for the following commands that allow overriding
a number of relevant global settings (as set by e.g. "set print
[...]" commands): "print", "compile print", "backtrace", "frame
apply", "tfaas", "faas";
- "info types" support for "-q" to disable printing of some header
- In settings, "unlimited" can now be abbreviated with "u".
* New commands:
- "define-prefix" to define user-defined prefix commands;
- "|" or "pipe" to execute a command and send its output to
a shell command.
- "with" to run a given command with a setting temporarily changed
to a given value;
- "set may-call-functions" to control whether subprogram can be
called from GDB;
- "set print finish [on|off]" to control whether the returned value
should be printed when using the "finish" command;
- "set print max-depth" to simplify the printing of deeply nested
- "set print raw-values [on|off]" to turn on and off pretty printers;
- "set logging debugredirect [on|off]" to control whether to redirect
debug output to the log file;
- Various new "set style" commands;
- "set print frame-info [...]" to control what information to print
when printing a frame.
- "set tui compact-source" to enable the "compact" mode for the TUI
- "info modules [...]" to query information about Fortran modules;
- The "set/show print raw-frame-arguments" commands replace
the "set/show print raw frame-arguments" (now with a dash instead of
a space). The latter is now deprecated and may be removed in
a future release.
* New GDB/MI commands
- "-complete" to list possible completions;
- "-catch-throw", "-catch-rethrow", and "-catch-catch", the GDB/MI
equivalent of the "catch throw", "catch rethrow", and "catch catch"
- "-symbol-info-functions", "-symbol-info-types", and
"-symbol-info-variables", the GDB/MI equivalent of the "info functions",
"info types", and "info variables" commands (respectively);
- "-symbol-info-modules", "-symbol-info-module-functions",
and "-symbol-info-module-variables", the GDB/MI equivalent of
"info modules", "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;
- Backtraces and frames include a new optional field "addr_flags".
* Several new builtin convenience variables
- $_gdb_major and $_gdb_minor;
- $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting and
- $_cimag and $_creal
- $_shell_exitcode and $_shell_exitsignal
* Miscellaneous enhancements:
- Support for a new configure option "--with-system-gdbinit-dir",
where system gdbinit files are to be loaded from at startup;
- 'thread-exited' event is now available in the annotations interface;
- The TUI SingleKey keymap is now named "SingleKey" (requires
GNU readline >= 8.0).