*debug.txt* Pour Vim version 7.0. Denière modification : 1 mai 2006
MANUEL de RÉFÉRENCE VIM - par Bram Moolenaar
Déboguer Vim *debug-vim*
Ce chapître explique comment déboguer vim lui même, lorsqu'il ne fonctionne
pas correctement. Pour déboguer les scripts Vim, ou les fonctions, etc. voir
|debug-scripts|
1. Emplacement d'un plantage, en utilisant gcc et gdb |debug-gcc|
2. Rapporter des bogues avec Windows |debug-win32|==============================================================================
1. Emplacement d'un plantage, en utilisant gcc et gdb *debug-gcc*
Lorsque Vim plante dans l'un des fichiers de tests, et que vous utilisez gcc
pour la compilation, voici ce que vous pouvez faire pour trouver exactement où
Vim plante. Ceci s'applique également si vous utilisez les outils MingW.
1. Compilez Vim avec l'option "-g" (il y a une ligne dans le Makefile pour
cela, il suffit de la décommenter).
2. Exécutez ces commandes (en replaçant "11" par le test qui échoue) :
cd testdir
gdb ../vim
run -u unix.vim -U NONE -s dotest.in test11.in
3. Vérifiez à quel endroit Vim plante, gdb devrait afficher un message pour
cela.
4. Récupérez la pile d'appels avec cette commande de gdb :
where
Vous pouvez vérifier différents emplacements dans la pile d'appels avec :
frame 3
Remplacez "3" avec les numéros présents dans la pile d'appels.
==============================================================================
2. Rapporter des bogues avec Windows *debug-win32*
Si la version Windows de Vim plante de manière reproductible, vous pouvez
suivre les étapes suivantes afin de produire un rapport de bug utilisable.
GÉNÉRIQUE ~
Vous devez obtenir le fichier des symboles de débogage (PDB) pour votre
exécutable : gvim.pdb pour gvim.exe, ou vim.pdb pour vim.exe. Le fichier PDB
doit être disponible depuis le même endroit où vous avez obtenu l'exécutable.
Vérifiez bien que vous utilisez le fichier PDB qui correspond au fichier EXE
(même date).
Si vous avez créé l'exécutable vous-même avec le compilateur Microsoft Visual
C++, alors le fichier PDB a été créé en même temps que le fichier EXE.
De manière similaire, si vous avez les fichiers sources, vous pouvez importer
Make_ivc.mak dans Visual Studio comme espace de travail (workspace). Ensuite,
choisissez une configuration de débogage, construisez le projet et vous
pourrez faire plein de tâches de débogage (placer des points d'arrêt,
surveiller des variables, etc.).
Si vous avez Visual Studio, utilisez cela au lieu du « VC Toolkit » et WinDbg.
Pour les autres compilateurs, vous devriez toujours utiliser le déboguer
correspondant : TD pour un exécutable Vim compilé avec le compilateur Borland,
gdb (voir ci-dessus |debug-gcc|) pour les compilateurs Cygwin et MinGW.
*debug-vs2005*
2.2 Déboguer les plantages Vim avec Visual Studio 2005/Visual C++ 2005 Express ~
Premièrement, lancez vim.exe ou gvim.exe puis lancez Visual Studio. (Si vous
n'avez pas Visual Studio, suivez les instructions à |get-ms-debuggers| pour
obtenir une version gratuite de « Visual C++ 2005 Express Edition ».
Dans le menu Outils, cliquez sur « Attacher à un processus ». Choisissez le
processus Vim.
Dans Vim, faites ce qu'il faut pour reproduire le plantage. Une boite de
dialogue apparaîtra dans Visual Studio, parlant d'une exception non gérée dans
le processus Vim. Cliquez sur Break pour vous arrêter dans le processus.
Visual Studio affichera une nouvelle boite de dialogue, vous indiquant
qu'aucun symbole n'est chargé et que le fichier source ne peut pas être
affiché. Cliquez sur « OK ».
Plusieurs fenêtres vont s'ouvrir. Cliquez du bouton droit sur la fenêtre de la
pile d'appel. Choisissez « Charger les symbols ». La boite de dialogue de
recherche des symboles s'ouvrira, recherchant (g)vim.pdb. Naviguez jusqu'au
répertoire où vous avez le fichier PDB et cliquez sur « Ouvrir ».
À partir de là, vous devriez avoir une pile d'appels complète avec les noms
dse fonctions vim et les numéros de lignes correspondants. Double-cliquez sur
l'un des lignes et la boite de dialogue « Rechercher les Sources » apparaîtra.
Naviguez jusqu'au répertoire où sont les sources de Vim (si vous les avez).
Si vous ne voyez pas comment continuer de déboguer cela, suivez les
instructions de |bug-reports|. Coller toute la pile d'appels dans le rapport
de bug.
Si vous avez une version non gratuite de Visual studio, vous pouvez
sauvegarder une minicapture via le menu « Debug » et l'envoyer avec le rapport
de bug. Une minicapture est un petit fichier (<100ko), qui contient des
information à propos de l'état d'un processus. Visual C++ 2005 Express Edition
ne permet pas de sauvegarder des minicaptures et ne peut pas être installé
comme un déboguer « Just-in-time ». Utilisez WinDbg, |debug-windbg|, si vous
voulez sauvegarder des minicaptures ou voulez un déboguer « Just-in-time »
(postmortem).
*debug-windbg*
2.3 Déboguer des plantages Vim avec WinDbg ~
Voir |get-ms-debuggers| pour obtenir une copie de WinDbg.
Comme avec l'environnement de développement Visual Studio, vous pouvez
attacher WinDbg à un processus Vim en cours d'exécution. Vous pouvez également
configurer votre système pour qu'il appelle automatiquement WinDbg comme un
débogueur postmortem. Il suffit pour cela d'exécuter "windbg -I".
Pour attacher WinDbg à un processus Vim en cours d'exécution, lancez WinDbg.
Dans le menu Fichier, choisissez l'entrée « attacher à un processus ».
Sélectionnez le processus Vim et cliquez sur « OK ».
À partir de là, choisissez « Chemin du fichier de symbole » dans le menu
Fichier, et ajoutez le répertoire contenant le fichier vim.pdb dans le chemin
des symboles. Si vous avez les sources de Vim, utilisez l'entrée « Chemin des
fichiers sources » du menu Fichier. Vous pouvez desormais ouvrir des fichiers
sources dans WinDbg, et positionner des points d'arrêts, si vous le désirez.
Reproduisez votre plantage. WinDbg devrait alors ouvrir le fichier source à
l'endroit précis du plantage. En utilisant le menu Affichage, vous pouvez
examiner la pile d'appel, les variables locales, des fenêtres de surveillance
de variables, etc.
Si WinDbg est votre déboguer postmortem, vous n'avez pas besoin d'attacher
WinDbg à votre processus Vim. Il vous suffit de reproduire le plantage et
WinDbg se lancera automatiquement. Comme ci-dessus, vous fixerez les chemins
des fichiers de symboles et des fichiers source.
Pour sauvegarder une minicapture, tapez la commande suivante à l'invite de
WinDbg :
.dump vim.dmp
*debug-minidump*
2.4 Ouvrir une minicapture ~
Si vous avez un fichier contenant une minicapture, vous pouvez l'ouvrir dans
Visual Studio ou dans WinDbg.
Dans Visual Studio 2005 : dans le menu Fichier, choisissez « Ouvrir », puis
« Projet/Solution ». Naviguez jusqu'au fichier .dmp et ouvrez-le. Maintenant
pressez F5 pour appeler le débogueur. Suivez les instructions données dans
|debug-vs2005| pour fixer le chemin du fichier de symboles.
Dans WinDbg : choissisez « Open Crash Dump » dans le menu Fichier. Suivez les
instructions dans |debug-windbg| pour fixer le chemin du fichier de symboles.
*get-ms-debuggers*
2.5 Obtenir les outils de déboguages Microsoft ~
Les outils de déboguage pour Windows (WinDbg inclus) peuvent être téléchargés
depuis
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Cela inclut le débogueur WinDbg.
Visual C++ 2005 Express Edition peut être téléchargé gratuitement depuis :
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
=========================================================================
vim:tw=78:ts=8:ft=help:norl: