A lightweight, but fully functional curses frontend to gdb
The interface is designed to deliver the familiar GDB text interface, with a split screen showing the source as it executes. The UI is modeled on the classic Unix text editor, vi. Those familiar with vi should feel right at home using CGDB.
The library responsible for communicating with GDB is called Trivial GDB (tgdb, or more accurately, libtgdb). This abstraction allows the UI code to be independent of the debugger, as well as greatly simplifying its implementation.
Those wanting to develop other interfaces to GDB are welcome to use libtgdb as the basis for their program. Many of the headaches of parsing GDB's output and annotations can be avoided by using it.
Here are some key features of "cgdb":
- Syntax-highlighted source window
- Visual breakpoint setting
- Keyboard shortcuts for common functions
- Searching source window (using regexp)
CGDB could not have been written without the use of other libraries. CGDB depends on
1. CGDB depends on readline-development-4.2 or greater.
If you don't have this, you might get a link error that looks something like this, 'undefined symbol, rl_set_prompt'.
2. CGDB depends on ncurses/curses.
The version number is not known. I have used libncurses.so.5 successfully.
3. If you decide to modify the tokenizer library or the config file module, you will need to have flex installed.
I have used flex 2.5.4 to build cgdb.
4. CGDB uses autoconf/automake to build its configure scripts and makefiles. So, if you change any of the autoconf/automake files, you will need this software installed.
- aclocal (GNU automake) 1.7
- autoconf (GNU Autoconf) 2.57
- libtool (GNU libtool) 1.4.3
- m4 (GNU m4) 1.4