| *debugger.txt* For Vim version 9.1. Last change: 2019 Dec 21 |
| |
| |
| 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|. |
| |
| |
| vim:tw=78:sw=4:ts=8:noet:ft=help:norl: |