# Vim documentation: debugger

main help file

    *debugger.txt*	For Vim version 9.2.  Last change: 2026 Feb 14

    		  VIM REFERENCE MANUAL	  by Gordon Prieur

    Debugger Support Features				*debugger-support*

    These features are for integration with a debugger or an Integrated
    Programming Environment (IPE) or Integrated Development Environment (IDE).
    For the debugger running in a Vim terminal window see |terminal-debugger|.

    1. Debugger Features		|debugger-features|
    2. Vim Compile Options		|debugger-compilation|

    ==============================================================================

    1. Debugger Features					*debugger-features*

    The following features are available:

    	Alternate Command Input				|alt-input|
    	Debug Signs					|debug-signs|
    	Debug Source Highlight				|debug-highlight|
    	Message Footer					|gui-footer|
    	Balloon Evaluation				|balloon-eval|

    These features were added specifically for use in the Motif version of gvim.
    However, the |alt-input| and |debug-highlight| were written to be usable in
    both vim and gvim.  Some of the other features could be used in the non-GUI
    vim with slight modifications.  However, I did not do this nor did I test the
    reliability of building for vim or non Motif GUI versions.

    1.1 Alternate Command Input				*alt-input*

    For Vim to work with a debugger there must be at least an input connection
    with a debugger or external tool.  In many cases there will also be an output
    connection but this isn't absolutely necessary.

    The purpose of the input connection is to let the external debugger send
    commands to Vim.  The commands sent by the debugger should give the debugger
    enough control to display the current debug environment and state.

    The current implementation is based on the X Toolkit dispatch loop and the
    XtAddInput() function call.

    1.2 Debug Signs						*debug-signs*

    Many debuggers mark specific lines by placing a small sign or color highlight
    on the line.  The |:sign| command lets the debugger set this graphic mark.  Some
    examples where this feature would be used would be a debugger showing an arrow
    representing the Program Counter (PC) of the program being debugged.  Another
    example would be a small stop sign for a line with a breakpoint.  These
    visible highlights let the user keep track of certain parts of the state of
    the debugger.

    This feature can be used with more than debuggers, too.  An IPE can use a sign
    to highlight build errors, searched text, or other things.  The sign feature
    can also work together with the |debug-highlight| to ensure the mark is
    highly visible.

    Debug signs are defined and placed using the |:sign| command.

    1.3 Debug Source Highlight				*debug-highlight*

    This feature allows a line to have a predominant highlight.  The highlight is
    intended to make a specific line stand out.  The highlight could be made to
    work for both vim and gvim, whereas the debug sign is, in most cases, limited
    to gvim.  The one exception to this is Sun Microsystem's dtterm.  The dtterm
    from Sun has a "sign gutter" for showing signs.

    1.4 Message Footer					*gui-footer*

    The message footer can be used to display messages from a debugger or IPE.  It
    can also be used to display menu and toolbar tips.  The footer area is at the
    bottom of the GUI window, below the line used to display colon commands.

    The display of the footer is controlled by the 'guioptions' letter 'F'.

    1.5 Balloon Evaluation					*balloon-eval*

    This feature allows a debugger, or other external tool, to display dynamic
    information based on where the mouse is pointing.  The purpose of this feature
    was to allow Sun's Visual WorkShop debugger to display expression evaluations.
    However, the feature was implemented in as general a manner as possible and
    could be used for displaying other information as well.  The functionality is
    limited though, for advanced popups see |popup-window|.

    Another way to use the balloon is with the 'balloonexpr' option.  This is
    completely user definable.

    The Balloon Evaluation has some settable parameters too.  For Motif the font
    list and colors can be set via X resources (XmNballoonEvalFontList,
    XmNballoonEvalBackground, and XmNballoonEvalForeground).
    The 'balloondelay' option sets the delay before an attempt is made to show a
    balloon.
    The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
    switch it on.

    Balloon evaluation is only available in the GUI when compiled with the
    |+balloon_eval| feature.  For the terminal the  |+balloon_eval_term| feature
    matters.

    The Balloon evaluation functions are also used to show a tooltip for the
    toolbar.  The 'ballooneval' option does not need to be set for this.  But the
    other settings apply.

    ==============================================================================

    2. Vim Compile Options					*debugger-compilation*

    The debugger features were added for use with Sun's Visual WorkShop Integrated
    Programming Environment (ipe).  However, they were done in as generic a manner
    as possible so that integration with other debuggers could also use these
    features.

    The following compile time preprocessor variables control the features:

        Alternate Command Input			ALT_X_INPUT
        Debug Glyphs				FEAT_SIGNS
        Debug Highlights				FEAT_SIGNS
        Message Footer				FEAT_FOOTER
        Balloon Evaluation				FEAT_BEVAL

    The support specifically for Sun Visual WorkShop has been removed, since the
    product no longer exists.

    For Sun NetBeans support see |netbeans|.

    top - main help file