Generated by GPT-5-mini| GNU Debugger | |
|---|---|
| Name | GNU Debugger |
| Developer | Free Software Foundation, Richard Stallman |
| Released | 1986 |
| Programming language | C (programming language), C++ |
| Operating system | Unix, Linux, Microsoft Windows, macOS |
| Platform | x86, ARM, PowerPC, RISC-V |
| Genre | Debugger |
| License | GNU General Public License |
GNU Debugger
GNU Debugger is a portable source-level debugger for programs written in C (programming language), C++, Fortran (programming language), Pascal (programming language), and other languages. It was initiated as part of the GNU Project and is associated with the Free Software Foundation and developers such as Richard Stallman and subsequent contributors. GDB is widely used in software development, systems programming, embedded systems, and education alongside tools like GNU Compiler Collection and Make (software).
GDB began during the growth of the GNU Project in the 1980s and was first released in 1986 with contributions from Richard Stallman and early collaborators connected to Massachusetts Institute of Technology communities and GNU Emacs users. Over time, development intersected with projects like the GNU Compiler Collection, Binutils, and the Linux kernel community, receiving patches from contributors associated with institutions such as University of California, Berkeley and companies like Red Hat. Major milestones include support for multiple architectures as seen in NetBSD, FreeBSD, and OpenBSD ports, integration with Eclipse (software), and adaptations for emerging platforms like RISC-V driven by contributors from organizations including SiFive and academic research groups. GDB's evolution paralleled events such as the rise of Linux distributions, collaboration with debugger protocol efforts like the Debug Adapter Protocol, and coordination at conferences including FOSDEM and GNU/Linux Conference.
GDB provides features expected of modern debuggers including breakpoints, watchpoints, single-stepping, stack inspection, and variable evaluation used alongside compilers such as GCC and optimization frameworks like LLVM. It supports remote debugging via the GDB remote protocol for targets like embedded systems produced by companies such as ARM Holdings and Microchip Technology. GDB integrates with front-ends and IDEs such as GNU Emacs, Eclipse (software), Visual Studio Code, and KDevelop, and cooperates with tools like Valgrind and Perf (Linux) for profiling. Advanced capabilities include scripting with Python (programming language), support for DWARF and STABS debugging formats originating from projects like UNIX System V and Berkeley Software Distribution, and replay/debugging techniques influenced by research from institutions such as Carnegie Mellon University and Stanford University.
GDB's architecture separates the debugger core, command-line interface, and remote stub protocol; components interact with binary formats like ELF and symbol information produced by GNU Compiler Collection. The design uses modular target descriptions enabling support for processors such as x86-64, ARM architecture, PowerPC, and RISC-V across operating systems like Linux, Microsoft Windows, and macOS. GDB's internals reference standards and formats developed by projects including DWARF debugging standard and tools such as Binutils for symbol resolution. Scripting hooks expose internals to languages like Python (programming language), permitting automation and extension used by development teams at companies like Google and Intel for custom debugging workflows.
Users operate GDB via a command-line interface with commands such as "break", "run", "next", "step", "continue", "print", and "backtrace" compatible with conventions used in debuggers from Sun Microsystems and historical AT&T Unix tools. Integration with IDEs like Eclipse (software), editors like GNU Emacs, and environments such as Visual Studio Code provides graphical debugging and integration with build systems like CMake and Autoconf. GDB supports scripting with Python (programming language) and command customization for automation in continuous integration pipelines used by organizations such as GitHub and GitLab. Remote debugging workflows employ the remote serial protocol used in embedded development with hardware from ARM Holdings, Espressif Systems, and vendors of JTAG debuggers.
GDB runs on a broad set of platforms including Linux, GNU/Hurd, BSD variants, Microsoft Windows via ports such as Cygwin and MinGW, and macOS. It supports language front-ends and runtimes such as C (programming language), C++, Fortran (programming language), Objective-C, Pascal (programming language), and experimental work for languages interoperating with LLVM like Rust (programming language). Target architectures supported include x86, x86-64, ARM architecture, MIPS architecture, PowerPC, and RISC-V. Community ports and vendor-supported builds appear in distributions from Debian, Ubuntu (operating system), Fedora (operating system), and Arch Linux, while proprietary toolchains integrate GDB components in offerings by vendors such as Texas Instruments and NVIDIA.
GDB development is coordinated within the GNU Project under the auspices of the Free Software Foundation. Contributions come from individual maintainers, corporate contributors, and academic collaborators with governance practices aligned to free software norms practiced by projects like GCC and Binutils. Development discussions occur on mailing lists, patchwork systems, and at events such as FOSDEM; source management and releases follow processes used by peer projects including Autoconf and GNU Automake. Licensing under the GNU General Public License ensures distribution and modification freedoms, influencing adoption by communities centered at organizations like Linux Foundation, Open Source Initiative, and various university research groups.
Category:Debuggers