annotate runtime/doc/debug.txt @ 856:8cd729851562 v7.0g

updated for version 7.0g
author vimboss
date Sun, 30 Apr 2006 18:54:39 +0000
parents a209672376fd
children b933657f7c9d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
856
8cd729851562 updated for version 7.0g
vimboss
parents: 842
diff changeset
1 *debug.txt* For Vim version 7.0g. Last change: 2006 Apr 30
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
2
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
3
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
5
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
6
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
7 Debugging Vim *debug-vim*
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
8
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
9 This is for debugging Vim itself, when it doesn't work properly.
606
aa08661abaf7 updated for version 7.0172
vimboss
parents: 502
diff changeset
10 For debugging Vim scripts, functions, etc. see |debug-scripts|
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
11
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
12 1. Location of a crash, using gcc and gdb |debug-gcc|
856
8cd729851562 updated for version 7.0g
vimboss
parents: 842
diff changeset
13 2. Windows Bug Reporting |debug-win32|
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
14
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
15 ==============================================================================
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
16
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
17 1. Location of a crash, using gcc and gdb *debug-gcc*
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
18
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
19 When Vim crashes in one of the test files, and you are using gcc for
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
20 compilation, here is what you can do to find out exactly where Vim crashes.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
21 This also applies when using the MingW tools.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
22
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
23 1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
24 which you can uncomment).
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
25
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
26 2. Execute these commands (replace "11" with the test that fails): >
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
27 cd testdir
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
28 gdb ../vim
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
29 run -u unix.vim -U NONE -s dotest.in test11.in
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
30
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
31 3. Check where Vim crashes, gdb should give a message for this.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
32
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
33 4. Get a stack trace from gdb with this command: >
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
34 where
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
35 < You can check out different places in the stack trace with: >
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
36 frame 3
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
37 < Replace "3" with one of the numbers in the stack trace.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
38
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
39 ==============================================================================
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
40
856
8cd729851562 updated for version 7.0g
vimboss
parents: 842
diff changeset
41 2. Windows Bug Reporting *debug-win32*
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
42
842
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
43 If the Windows version of Vim crashes in a reproducible manner, you can take
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
44 some steps to provide a useful bug report.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
45
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
46
842
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
47 GENERIC ~
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
48
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
49 You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
50 for gvim.exe, or vim.pdb for vim.exe. It should be available from the same
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
51 place that you obtained the executable. Be sure to use the PDB that matches
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
52 the EXE (same date).
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
53
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
54 If you built the executable yourself with the Microsoft Visual C++ compiler,
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
55 then the PDB was built with the EXE.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
56
842
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
57 Alternatively, if you have the source files, you can import Make_ivc.mak into
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
58 Visual Studio as a workspace. Then select a debug configuration, build and
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
59 you can do all kinds of debugging (set breakpoints, watch variables, etc.).
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
60
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
61 If you have Visual Studio, use that instead of the VC Toolkit and WinDbg.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
62
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
63 For other compilers, you should always use the corresponding debugger: TD for
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
64 a Vim executable compiled with the Borland compiler; gdb (see above
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
65 |debug-gcc|) for the Cygwin and MinGW compilers.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
66
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
67
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
68 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
69
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
70 First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
71 have Visual Studio, follow the instructions in src/INSTALLpc.txt to obtain a
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
72 free copy of Visual C++ 2005 Express Edition.)
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
73
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
74 On the Tools menu, click Attach to Process. Choose the Vim process.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
75
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
76 In Vim, reproduce the crash. A dialog will appear in Visual Studio, telling
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
77 you about the unhandled exception in the Vim process. Click Break to break
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
78 into the process.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
79
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
80 Visual Studio will pop up another dialog, telling you that no symbols are
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
81 loaded and that the source code cannot be displayed. Click OK.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
82
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
83 Several windows will open. Right-click in the Call Stack window. Choose Load
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
84 Symbols. The Find Symbols dialog will open, looking for (g)vim.pdb. Navigate
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
85 to the directory where you have the PDB file and click Open.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
86
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
87 At this point, you should have a full call stack with vim function names and
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
88 line numbers. Double-click one of the lines and the Find Source dialog will
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
89 appear. Navigate to the directory where the Vim source is (if you have it.)
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
90
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
91 If you don't know how to debug this any further, follow the instructions
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
92 at ":help bug-reports". Paste the call stack into the bug report.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
93
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
94 If you have a non-free version of Visual Studio, you can save a minidump via
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
95 the Debug menu and send it with the bug report. A minidump is a small file
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
96 (<100KB), which contains information about the state of your process.
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
97
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
98
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
99 Debugging Vim with Debugging Tools ~
a209672376fd updated for version 7.0f
vimboss
parents: 834
diff changeset
100
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
101 You can download the Microsoft Visual C++ Toolkit from
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
102 http://msdn.microsoft.com/visualc/vctoolkit2003/
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
103 This contains the command-line tools, but not the Visual Studio IDE.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
104
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
105 The Debugging Tools for Windows can be downloaded from
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
106 http://www.microsoft.com/whdc/devtools/debugging/default.mspx
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
107 This includes the WinDbg debugger.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
108
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
109
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
110 =========================================================================
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
111 vim:tw=78:ts=8:ft=help:norl: