Differences between revisions 27 and 28
Revision 27 as of 2014-10-17 09:42:48
Size: 6366
Editor: PedroAlves
Comment: Even more descriptions
Revision 28 as of 2014-10-27 13:19:04
Size: 5698
Editor: PedroAlves
Comment: remove libgdb.a caution warning, no consensus
Deletions are marked like this. Additions are marked like this.
Line 78: Line 78:

Caution: this is not a recommended approach. Paraphrasing [[https://sourceware.org/ml/gdb/2014-10/msg00052.html|Stan]], the fact of the situation is that a C API makes things harder, not easier for a frontend. Consider that GDB is a) making system calls, which are sometimes blocking, b) is doing tricks with signals all over the place, and c) gets involved with permissions, and d) manages vast quantities of memory. It's just not something you ever want in your address space, like having a drunken malpracticing doctor wandering around your hotel with a master key and a bagful of scary medical instruments. Out of process / MI is really the safe way to go.

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 ).

  • Qt Creator

  • 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.

1.2. 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.

1.3. Built-in/linked-with GDB

  • GDB TUI - GDB's own built-in curses interface, just a ctrl-x a away.

  • Insight - A Tcl/Tk GUI with very tight GDB integration.

  • FreePascal's Lazarus - 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.

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.

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 FreePascal's Lazarus wraps GDB.

Note libgdb.a is not built by default, you need to run "make libgdb.a".

None: GDB Front Ends (last edited 2014-10-27 13:19:04 by PedroAlves)

All content (C) 2008 Free Software Foundation. For terms of use, redistribution, and modification, please see the WikiLicense page.