- Breakpoints are highlighted in source code and in the assembly buffers. The
highlighting includes the last two digits of the breakpoint number so that they
can be easily identified. Disabled breakpoints are noted with a different
highlighting color. When setting a breakpoint, clewn automatically finds the
source file for the breakpoint if it exists, and tells vim to load and display the
file and highlight the line.
- An expression value or a variable value as provided by gdb, is displayed in a
balloon in Vim, when the mouse pointer is hovering over the selected
expression or the variable.
- Assembly buffers hold the assembly code for functions that miss the source
code and are being stepped through, or where breakpoints have been set. This
feature can be enabled by an option of the clewn command line.
- When there is no debugging information or source
files and the assembly option has been enabled, clewn disassembles the function
containing the breakpoint and vim displays and highlights its line.
- Each time gdb displays a stack frame when the debuggee stops or when moving
along the stack frame, clewn automatically finds the source file for that frame
and tells vim to display the file and highlight the line. When there is no source
code for the frame or when doing instruction stepping (stepi, nexti) the program
counter line within an assembly window is highlighted if the assembly option has
- Any gdb command can be mapped to a vim key mapping. This allows, for example,
to set or clear a breakpoint, or print a variable's value at the current cursor or
mouse position in a vim window by just hitting a key.
- You can send an interrupt from vim to gdb and the program it is running.
- A variable can be dropped and watched in a vim window by pointing the
mouse on the variable in the source code and hitting a key. The variable's value
is updated and highlighted whenever changed. To remove a variable, just delete it
from the vim window with a vim command or a keystroke.
- Support of gdb command and file name completion. This also works while
entering, in gdb, a gdb user-defined sequence of commands or a list of commands
for a breakpoint.