17372
|
1 *debugger.txt* For Vim version 8.1. Last change: 2019 Jul 06
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Gordon Prieur
|
|
5
|
|
6
|
|
7 Debugger Support Features *debugger-support*
|
|
8
|
17372
|
9 These features are for integration with a debugger or an Integrated
|
|
10 Programming Environment (IPE) or Integrated Development Environment (IDE).
|
|
11 For the debugger running in a Vim terminal window see |terminal-debugger|.
|
|
12
|
7
|
13 1. Debugger Features |debugger-features|
|
|
14 2. Vim Compile Options |debugger-compilation|
|
|
15 3. Integrated Debuggers |debugger-integration|
|
|
16
|
|
17
|
|
18 ==============================================================================
|
|
19 1. Debugger Features *debugger-features*
|
|
20
|
17372
|
21 The following features are available:
|
7
|
22
|
|
23 Alternate Command Input |alt-input|
|
|
24 Debug Signs |debug-signs|
|
|
25 Debug Source Highlight |debug-highlight|
|
|
26 Message Footer |gui-footer|
|
|
27 Balloon Evaluation |balloon-eval|
|
|
28
|
|
29 These features were added specifically for use in the Motif version of gvim.
|
|
30 However, the |alt-input| and |debug-highlight| were written to be usable in
|
236
|
31 both vim and gvim. Some of the other features could be used in the non-GUI
|
|
32 vim with slight modifications. However, I did not do this nor did I test the
|
7
|
33 reliability of building for vim or non Motif GUI versions.
|
|
34
|
|
35
|
|
36 1.1 Alternate Command Input *alt-input*
|
|
37
|
|
38 For Vim to work with a debugger there must be at least an input connection
|
236
|
39 with a debugger or external tool. In many cases there will also be an output
|
7
|
40 connection but this isn't absolutely necessary.
|
|
41
|
|
42 The purpose of the input connection is to let the external debugger send
|
236
|
43 commands to Vim. The commands sent by the debugger should give the debugger
|
7
|
44 enough control to display the current debug environment and state.
|
|
45
|
|
46 The current implementation is based on the X Toolkit dispatch loop and the
|
|
47 XtAddInput() function call.
|
|
48
|
|
49
|
|
50 1.2 Debug Signs *debug-signs*
|
|
51
|
|
52 Many debuggers mark specific lines by placing a small sign or color highlight
|
236
|
53 on the line. The |:sign| command lets the debugger set this graphic mark. Some
|
7
|
54 examples where this feature would be used would be a debugger showing an arrow
|
236
|
55 representing the Program Counter (PC) of the program being debugged. Another
|
|
56 example would be a small stop sign for a line with a breakpoint. These visible
|
7
|
57 highlights let the user keep track of certain parts of the state of the
|
|
58 debugger.
|
|
59
|
236
|
60 This feature can be used with more than debuggers, too. An IPE can use a sign
|
|
61 to highlight build errors, searched text, or other things. The sign feature
|
7
|
62 can also work together with the |debug-highlight| to ensure the mark is
|
|
63 highly visible.
|
|
64
|
|
65 Debug signs are defined and placed using the |:sign| command.
|
|
66
|
|
67
|
|
68 1.3 Debug Source Highlight *debug-highlight*
|
|
69
|
236
|
70 This feature allows a line to have a predominant highlight. The highlight is
|
|
71 intended to make a specific line stand out. The highlight could be made to
|
7
|
72 work for both vim and gvim, whereas the debug sign is, in most cases, limited
|
236
|
73 to gvim. The one exception to this is Sun Microsystem's dtterm. The dtterm
|
7
|
74 from Sun has a "sign gutter" for showing signs.
|
|
75
|
|
76
|
|
77 1.4 Message Footer *gui-footer*
|
|
78
|
236
|
79 The message footer can be used to display messages from a debugger or IPE. It
|
|
80 can also be used to display menu and toolbar tips. The footer area is at the
|
7
|
81 bottom of the GUI window, below the line used to display colon commands.
|
|
82
|
|
83 The display of the footer is controlled by the 'guioptions' letter 'F'.
|
|
84
|
|
85
|
|
86 1.5 Balloon Evaluation *balloon-eval*
|
|
87
|
|
88 This feature allows a debugger, or other external tool, to display dynamic
|
236
|
89 information based on where the mouse is pointing. The purpose of this feature
|
7
|
90 was to allow Sun's Visual WorkShop debugger to display expression evaluations.
|
|
91 However, the feature was implemented in as general a manner as possible and
|
16808
|
92 could be used for displaying other information as well. The functionality is
|
|
93 limited though, for advanced popups see |popup-window|.
|
7
|
94
|
17372
|
95 Another way to use the balloon is with the 'balloonexpr' option. This is
|
|
96 completely user definable.
|
|
97
|
170
|
98 The Balloon Evaluation has some settable parameters too. For Motif the font
|
|
99 list and colors can be set via X resources (XmNballoonEvalFontList,
|
7
|
100 XmNballoonEvalBackground, and XmNballoonEvalForeground).
|
|
101 The 'balloondelay' option sets the delay before an attempt is made to show a
|
|
102 balloon.
|
12909
|
103 The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
|
|
104 switch it on.
|
7
|
105
|
12909
|
106 Balloon evaluation is only available in the GUI when compiled with the
|
|
107 |+balloon_eval| feature. For the terminal the |+balloon_eval_term| feature
|
|
108 matters.
|
7
|
109
|
|
110 The Balloon evaluation functions are also used to show a tooltip for the
|
|
111 toolbar. The 'ballooneval' option does not need to be set for this. But the
|
|
112 other settings apply.
|
|
113
|
|
114 ==============================================================================
|
|
115 2. Vim Compile Options *debugger-compilation*
|
|
116
|
|
117 The debugger features were added explicitly for use with Sun's Visual
|
236
|
118 WorkShop Integrated Programming Environment (ipe). However, they were done
|
7
|
119 in as generic a manner as possible so that integration with other debuggers
|
|
120 could also use some or all of the tools used with Sun's ipe.
|
|
121
|
|
122 The following compile time preprocessor variables control the features:
|
|
123
|
|
124 Alternate Command Input ALT_X_INPUT
|
|
125 Debug Glyphs FEAT_SIGNS
|
|
126 Debug Highlights FEAT_SIGNS
|
|
127 Message Footer FEAT_FOOTER
|
|
128 Balloon Evaluation FEAT_BEVAL
|
|
129
|
236
|
130 The first integration with a full IPE/IDE was with Sun Visual WorkShop. To
|
7
|
131 compile a gvim which interfaces with VWS set the following flag, which sets
|
|
132 all the above flags:
|
|
133
|
|
134 Sun Visual WorkShop FEAT_SUN_WORKSHOP
|
|
135
|
|
136 ==============================================================================
|
|
137 3. Integrated Debuggers *debugger-integration*
|
|
138
|
147
|
139 One fully integrated debugger/IPE/IDE is Sun's Visual WorkShop Integrated
|
|
140 Programming Environment.
|
|
141
|
|
142 For Sun NetBeans support see |netbeans|.
|
7
|
143
|
14421
|
144 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|