GDB: The GNU Project Debugger
[bugs]
[maintainers]
[contributing]
[current git]
[documentation]
[download]
[home]
[irc]
[links]
[mailing lists]
[news]
[schedule]
[song]
[wiki]
GDB: The GNU Project Debugger
What is GDB?
GDB, the GNU Project debugger, allows you to see what is going on
`inside' another program while it executes -- or what another program
was doing at the moment it crashed.
GDB can do four main kinds of things (plus other things in support
of these) to help you catch bugs in the act:
- Start your program, specifying anything that might affect its behavior.
- Make your program stop on specified conditions.
- Examine what has happened, when your program has stopped.
- Change things in your program, so you can experiment with
correcting the effects of one bug and go on to learn about another.
Those programs might be executing on the same machine as GDB (native),
on another machine (remote), or on a simulator. GDB can run on most
popular UNIX and Microsoft Windows variants, as well as on macOS.
What Languages does GDB Support?
GDB supports the following languages (in alphabetical order):
- Ada
- Assembly
- C
- C++
- D
- Fortran
- Go
- Objective-C
- OpenCL
- Modula-2
- Pascal
- Rust
GDB version 14.2
Version 14.2 of GDB, the GNU
Debugger, is now available for download. See the ANNOUNCEMENT for details
including changes in this release.
An errata list (PROBLEMS) and documentation
are also available.
News
- May 26th, 2024: GDB 15 branch created
-
The GDB 15 branch (gdb-15-branch) has been created.
To check out a copy of the branch use:
git clone --branch gdb-15-branch https://sourceware.org/git/binutils-gdb.git
- March 3rd, 2024: GDB 14.2 Released!
-
The latest version of GDB, version 14.2, is available for download.
This is a minor corrective release over GDB 14.1, fixing the following
issues:
See the NEWS file for a more complete and detailed list of what this release includes.
- December 3rd, 2023: GDB 14.1 Released!
-
The latest version of GDB, version 14.1, is available for download.
This version of GDB includes the following changes and enhancements:
- Removed features, removed configurations:
- GDB no longer support AiX 4.x, 5.x and 6.x. The minimum version
supported is AiX 7.1.
- GDB/MI version 1 support has been removed
- Initial built-in support for Debugger Adapter Protocol (DAP)
- GDB now recognizes the NO_COLOR environment variable
- Initial support for integer types larger than 64 bits
- Breakpoints can now be inferior-specific
- New convenience function "$_shell", to execute a shell command and
return its result.
- Python support
- New class gdb.Thread
- New class gdb.unwinder.FrameId
- New class gdb.ValuePrinter
- New gdb.Inferior.arguments attribute, holding the command-line
arguments to the inferior, if known
- New gdb.Inferior.main_name attribute, holding the name of
the inferior's 'main', if known.
- New gdb.Breakpoint.inferior attribute
- New gdb.Progspace.symbol_file attribute
- New gdb.Progspace.executable_filename attribute
- New function gdb.execute_mi(COMMAND, [ARG]...)
- New function gdb.block_signals()
- New method gdb.Frame.static_link
- New gdb.Inferior 'clear_env', 'set_env' and 'unset_env' methods
- New gdb.Type now has the 'is_array_like' and 'is_string_like'
methods
- New gdb.Value 'assign' method
- New gdb.Value 'to_array' method
- New gdb.Progspace 'objfile_for_address' method
- New methods added to the gdb.PendingFrame class, with behavior
which is the same as the corresponding methods on gdb.Frame.
- gdb.LazyString now implements the __str__ method
- New event gdb.ThreadExitedEvent
- New event gdb.ExecutableChangedEvent
- New event gdb.NewProgspaceEvent
- New event gdb.FreeProgspaceEvent
- The frame-id passed to gdb.PendingFrame.create_unwind_info
now use either an integer or a gdb.Value object for each of its
'sp', 'pc', and 'special' attributes.
- The Disassembler API from the gdb.disassembler module has been
extended to include styling support
- gdb.parse_and_eval now has a new "global_context" parameter,
allowing the request to only examine global symbols.
- The name argument passed to gdb.unwinder.Unwinder.__init__ must
now be of type 'str' otherwise a TypeError will be raised.
- The gdb.unwinder.Unwinder.enabled attribute can now only accept
values of type 'bool'. Changing this attribute will now
invalidate GDB's frame-cache.
- It is now no longer possible to sub-class the
gdb.disassembler.DisassemblerResult type.
- Remote protocol
- Support for enabling or disabling individual remote target features
- GDB/MI support
- New 'no-history' stop reason
- Support for inferior-specific breakpoints
- The bkpt tuple, which appears in breakpoint-created notifications,
and in the result of the -break-insert command can now include an
optional 'inferior' field for both the main breakpoint, and each
location, when the breakpoint is inferior-specific.
- Trying to create a thread-specific breakpoint using a non-existent
thread ID now results in an error
- New "simple-values-ref-types" -list-feature value indicating how
the --simple-values option in various commands take reference types
into account.
- Enhanced AArch64 support
- Initial support for Scalable Matrix Extension (SME) and for Scalable
Matrix Extension 2 (SME2)
- The 'org.gnu.gdb.aarch64.pauth' Pointer Authentication feature
is now deprecated in favor of the 'org.gnu.gdb.aarch64.pauth_v2'
feature string
- Enhanced Ada support
- Support for the Ada 2022 target name symbol ('@')
- Support for the The Ada 2022 'Enum_Rep and 'Enum_Val attributes
- Miscellaneous
- The 'list' command now accepts '.' as an argument, telling GDB
to print the location around the point of execution within
the current frame
- New '%V' output format for printf and dprintf commands.
- The printf command now limits the size of strings fetched from
the inferior to the value of the 'max-value-size' setting.
- Support for extending at configure time the default value of
the 'debug-file-directory' GDB parameter via the new
--additional-debug-dirs=PATHs configure option.
- New command "info main"
- New command "set tui mouse-events [on|off]" (on by default)
- New command "set always-read-ctf on|off" (off by default)
- Various new debug and maitenance commands
See the NEWS file for a more complete and detailed list of what this release includes.
- Nov 28, 2006: Reversible Debugging
-
The GDB maintainers are looking for contributors interested
in reversible debugging.
Late breaking information, such as recently added features, can be
found in the NEWS file in the gdb source tree. Old announcements are in the
news archive.
[bugs]
[maintainers]
[contributing]
[current git]
[documentation]
[download]
[home]
[irc]
[links]
[mailing lists]
[news]
[schedule]
[song]
[wiki]