GDB, the GNU Project Debugger, helps developers investigate problems in running programs and examine what happened when an application crashed. It is one of the most established debugging tools available on Linux.
GDB allows a program to run under controlled conditions. Developers can stop execution at particular points, inspect variables and memory, examine the call stack and change values to investigate unexpected behaviour.
Although closely associated with C and C++, GDB supports many other programming languages, including Ada, D, Fortran, Go, Objective-C, Pascal and Rust. It is also used extensively for embedded development and remote debugging.
This is free and open source software.
Key Features
- Set breakpoints at source lines, functions or addresses, with conditions and ignore counts.
- Use watchpoints to detect when the contents of a memory location change.
- Step through program execution at source-code or machine-instruction level.
- Inspect and modify variables, registers, memory and stack frames.
- Debug multithreaded programs, switch between threads and investigate concurrent execution.
- Attach to running processes and examine core dumps after a crash.
- Debug programs running on remote systems or embedded targets through gdbserver and remote protocols.
- Record execution and use reverse debugging to investigate earlier program states where supported.
- Automate debugging sessions and create custom commands using Python or Guile scripting.
- Integrate with graphical frontends and editors through GDB/MI and the Debug Adapter Protocol.
Website: www.sourceware.org/gdb
Support:
Developer: GNU Project
License: GNU General Public License v3.0
GDB is written in C. Learn C with our recommended free books and free tutorials.
Related Software
| Debuggers | |
|---|---|
| LLDB | Next generation, high-performance debugger |
| Ghidra | Software reverse engineering framework |
| Delve | Source level debugger for the Go programming language |
| GDB | The GNU Debugger |
| Valgrind | A memory debugger and profiler |
| Radare2 | Portable reversing framework |
| BugStalker | Rust debugger |
| Xdebug | Extension for PHP to aid debugging and development |
| Seer | GUI frontend to GDB |
| iaito | Graphical interface for radare2 |
| KDbg | Graphical user interface to GDB |
| strace | Diagnostic, debugging and instructional userspace utility |
| rr | Record-and-replay debugger |
| gf | Lightweight GDB interface with source, stack and memory views |
| drgn | Programmable debugger that puts scripting at the centre |
| cgdb | Lightweight console frontend to the GNU debugger |
| PuDB | Console-based visual debugger for Python |
| nnd | Partially inspired by RemedyBG |
| bashdb | Source-code debugger for bash; follows the GDB command syntax |
| PINCE | Memory scanning, process manipulation and reverse engineering |
| edb | Low-level debugging with disassembly and register inspection |
| Sysprof | Profile an application or entire system |
| crash | Linux kernel crash analysis utility |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.