Lazarus uses GDB/MI, FPC's text mode IDE links with libgdb.a
add gdbgui, pygdbmi, golang gdb mi parser
|Deletions are marked like this.||Additions are marked like this.|
|Line 12:||Line 12:|
|Line 73:||Line 75:|
|[[https://github.com/cs01/pygdbmi/|pygdbmi]] - Python parser to turn gdb mi output into Python dictionaries. Also has class to spawn and manage gdb subprocesses. Used by
[[https://github.com/cyrus-and/gdb|gdb]] - golang library to parse gdb mi output. Also comes with HTTP/WebSocket interface to help develop web-based GDB front ends.
GDB front ends and other tools
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.
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.
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 ).
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.
1.2. 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.3. 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.
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.
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".