| *debug.txt* For Vim version 7.0f. Last change: 2006 Apr 24 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| |
| Debugging Vim *debug-vim* |
| |
| This is for debugging Vim itself, when it doesn't work properly. |
| For debugging Vim scripts, functions, etc. see |debug-scripts| |
| |
| 1. Location of a crash, using gcc and gdb |debug-gcc| |
| 2. Windows Bug Reporting |debug-win32| |
| |
| ============================================================================== |
| |
| 1. Location of a crash, using gcc and gdb *debug-gcc* |
| |
| When Vim crashes in one of the test files, and you are using gcc for |
| compilation, here is what you can do to find out exactly where Vim crashes. |
| This also applies when using the MingW tools. |
| |
| 1. Compile Vim with the "-g" option (there is a line in the Makefile for this, |
| which you can uncomment). |
| |
| 2. Execute these commands (replace "11" with the test that fails): > |
| cd testdir |
| gdb ../vim |
| run -u unix.vim -U NONE -s dotest.in test11.in |
| |
| 3. Check where Vim crashes, gdb should give a message for this. |
| |
| 4. Get a stack trace from gdb with this command: > |
| where |
| < You can check out different places in the stack trace with: > |
| frame 3 |
| < Replace "3" with one of the numbers in the stack trace. |
| |
| ============================================================================== |
| |
| 2. Windows Bug Reporting *debug-win32* |
| |
| If the Windows version of Vim crashes in a reproducible manner, you can take |
| some steps to provide a useful bug report. |
| |
| |
| GENERIC ~ |
| |
| You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb |
| for gvim.exe, or vim.pdb for vim.exe. It should be available from the same |
| place that you obtained the executable. Be sure to use the PDB that matches |
| the EXE (same date). |
| |
| If you built the executable yourself with the Microsoft Visual C++ compiler, |
| then the PDB was built with the EXE. |
| |
| Alternatively, if you have the source files, you can import Make_ivc.mak into |
| Visual Studio as a workspace. Then select a debug configuration, build and |
| you can do all kinds of debugging (set breakpoints, watch variables, etc.). |
| |
| If you have Visual Studio, use that instead of the VC Toolkit and WinDbg. |
| |
| For other compilers, you should always use the corresponding debugger: TD for |
| a Vim executable compiled with the Borland compiler; gdb (see above |
| |debug-gcc|) for the Cygwin and MinGW compilers. |
| |
| |
| Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~ |
| |
| First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't |
| have Visual Studio, follow the instructions in src/INSTALLpc.txt to obtain a |
| free copy of Visual C++ 2005 Express Edition.) |
| |
| On the Tools menu, click Attach to Process. Choose the Vim process. |
| |
| In Vim, reproduce the crash. A dialog will appear in Visual Studio, telling |
| you about the unhandled exception in the Vim process. Click Break to break |
| into the process. |
| |
| Visual Studio will pop up another dialog, telling you that no symbols are |
| loaded and that the source code cannot be displayed. Click OK. |
| |
| Several windows will open. Right-click in the Call Stack window. Choose Load |
| Symbols. The Find Symbols dialog will open, looking for (g)vim.pdb. Navigate |
| to the directory where you have the PDB file and click Open. |
| |
| At this point, you should have a full call stack with vim function names and |
| line numbers. Double-click one of the lines and the Find Source dialog will |
| appear. Navigate to the directory where the Vim source is (if you have it.) |
| |
| If you don't know how to debug this any further, follow the instructions |
| at ":help bug-reports". Paste the call stack into the bug report. |
| |
| If you have a non-free version of Visual Studio, you can save a minidump via |
| the Debug menu and send it with the bug report. A minidump is a small file |
| (<100KB), which contains information about the state of your process. |
| |
| |
| Debugging Vim with Debugging Tools ~ |
| |
| You can download the Microsoft Visual C++ Toolkit from |
| http://msdn.microsoft.com/visualc/vctoolkit2003/ |
| This contains the command-line tools, but not the Visual Studio IDE. |
| |
| The Debugging Tools for Windows can be downloaded from |
| http://www.microsoft.com/whdc/devtools/debugging/default.mspx |
| This includes the WinDbg debugger. |
| |
| |
| ========================================================================= |
| vim:tw=78:ts=8:ft=help:norl: |