annotate runtime/doc/debugger.txt @ 18478:94223687df0e

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