GDB front ends and other tools
Contents
1. GDB Front Ends
Here's a partial list of front ends using GDB. If you know of others, please add a link.
1.1. Using modern GDB/MI
GDB/MI is a line based machine oriented text interface to GDB. It is specifically intended to support the development of systems which use the debugger as component of a larger system. See The GDB/MI Interface in the GDB manual.
gdbgui - Feature rich browser-based frontend with data structure visualizations (like DDD), and gdb terminal access. Compatible with C, C++, golang, Rust, fortran. Written in Python and JavaScript. pip install gdbgui.
BVRDE - A fully integrated development environment (IDE) for remote cross-platform compiling and debugging of UNIX and LINUX console applications. BVRDE runs on a Windows platform, but compiles and debugs applications on UNIX systems.
CLion - A cross-platform C/C++ IDE by JetBrains. It bundles multi-arch GDB debugger, easily switchable to your custom version, and supports remote debug via gdbserver.
Eclipse CDT (C/C++ Development Tooling) - The CDT Project provides a fully functional C and C++ Integrated Development Environment based on the Eclipse platform.
Eclipse's Standalone Debugger - Starts up a subset of Eclipse CDT plugins specifically to C/C++ debugging, plus a command-line script which allows an end-user to start up the debugger from the command-line and pass arguments that will start the debugger for the appropriate task.
KDevelop - A feature-full, plugin extensible, free, open source IDE for C/C++. Runs on Linux, Solaris, FreeBSD, Mac OS X and other Unix flavors, and Windows as well. It is based on KDE and Qt libraries and is under development since 1998.
NetBeans - Although this is the official IDE for Java, it can do C/C++, Fortran and Assembly too. It is plugin extensible, and you'll find plugins that extend the GDB integration, like e.g., the GDBserver plugin here.
Nemiver - An easy to use standalone C/C++ debugger that integrates well in the GNOME environment.
Pyclewn - Pyclewn allows using vim as a front end to a debugger.
WinGDB - Debugging with GDB under Visual Studio
CodeLite - An open source, free, cross platform IDE for the C/C++ programming languages which runs best on all major Platforms ( OSX, Windows and Linux ).
Qt Creator - Qt Creator is a cross-platform IDE (integrated development environment) tailored to the needs of Qt developers. It is part of the Qt Project.
GNU Emacs (24 and beyond) - See GDB Graphical Interface in the Emacs manual. GDB is just a M-x gdb away.
SlickEdit - SlickEdit is a cross-platform, multi-language code editor that gives programmers the ability to code in over 50 languages on 9 platforms, that supports C++ debugging using GDB.
Gede - Gede is a graphical frontend (GUI) to GDB written in Qt.
Lazarus IDE for the Free Pascal Compiler - A Delphi compatible cross-platform IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.
Seer A GUI Frontend to gdb for Linux. The aim is a simple, yet pleasing GUI to gdb.
1.2. Using the Python API
GDBFrontend - An extensible GUI for GDB.
1.3. Built-in/linked-with GDB
GDB TUI - GDB's own built-in curses interface, just a ctrl-x a away.
PyGtk GUI - A somewhat nameless Gtk-based GUI using GDB's Python scripting.
Insight - A Tcl/Tk GUI with very tight GDB integration.
1.4. Using the old (deprecated) annotations mechanism (please fix them!)
Code::Blocks - A free C, C++ and Fortran IDE, with a consistent look, feel and operation across platforms. Designed to be very extensible and fully configurable.
GNU Emacs (prior to 24)
GNU DDD - A graphical front-end for command-line debuggers (GDB, Perl, bash, GNU Make, Python, etc.). Besides "usual" front-end features such as viewing source texts, DDD has become famous through its interactive graphical data display, where data structures are displayed as graphs.
CGDB - cgdb is a lightweight curses (terminal-based) interface. In addition to the standard gdb console, cgdb provides a split screen view that displays the source code as it executes. The keyboard interface is modelled after vim, so vim users should feel at home using cgdb.
KDbg (using plain CLI) - A graphical user interface to gdb. Provides an intuitive interface for setting breakpoints, inspecting variables, and stepping through code. Requires KDE, but you can of course debug any program.
2. Other tools that extend GDB
PGDB - PGDB is a parallel/distributed debugger, based upon GDB, designed for debugging MPI jobs on a cluster.
3. Libraries
Here's a partial list of libraries that interface with GDB. If you know of others, please add a link.
3.1. Thin GDB/MI wrappers
These are reusable libraries that provide a programmatic GDB/MI interface, so you can create a GDB frontend without writing an MI parser, etc. You can also look at the source code for the frontends above, and consider reusing their MI bits.
pygdbmi - Python parser to turn gdb mi output into Python dictionaries. Also has class to spawn and manage gdb subprocesses. Used by gdbgui's backend.
gdb - golang library to parse gdb mi output. Also comes with HTTP/WebSocket interface to help develop web-based GDB front ends.
gdbwire - C library.
libmigdb - C library.
3.2. GDB's own libgdb.a
This is just the whole of GDB built as a library. This is how Free Pascal's text mode IDE (fp) wraps GDB, although development versions also support GDB/MI.
Note that libgdb.a is not built by default; you need to run "make libgdb.a".