Programmeurs C/C++ :
Voici un outil vraiment tres tres pratique :
le débugueur.
Le débugueur est une fonctionnalité de votre compilateur ( Visual C++ ou Dev C++ par exemple)
qui va vous permettre de comprendre poruquoi ce que vous faites ne marche pas.
Je vais expliquer les fonctionnalités d´un bon débuggueur ( je me base sur celui de visual, mais je pense que celui de dev se défend)
Voici les éléments qui composent un debuggueur :
Les breakpoints :
Les breakpoints sont des points ( souvent rouges) que vous pouvez mettre dans la marge de votre programme, en face d´une instruction.
Mettez des breakpoints aux endroits qui vous semblent douteux, puis lancez le programme. ( sur certains compilateurs, on peut lancer le programme pour qu´il passe par les breakpoints, ou pas. Ici, lancez celui qui passe par les breakpoints)
Exemple :
Prenez un programme tres simple. Mettez un breakpoint sur une instruction dans le main ( un cout ou un printf), et lancez le programme. Veillez a ce que le compilateur s´arrete, pendant l´execution, sur votre breakpoint.
Le code apparaitra, et une fleche dans la marge, vous dira a quel endroit est stopé le programme.
screenshot visual :
http://www.funsoul.com/vb/images/breakpoint.gif
screenshot dev :
http://www.dil.univ-mrs.fr/~garreta/generique/autres/fig/fig0320.PNG
A partir de la, voici ce que vous pouvez faire :
- cliquez sur des variables pour voir leur valeur : et ainsi, vérifiez que la variable est bien celle que vous attendiez...
souvent le compilateur lui meme vous met dans une fenetre la valeur des variables utilisées dans la fonction...
Si vous avez des structures, il y a des options pour voir les valeurs des variables dans les structures...
L´erreur classique : une fonction qui a renvoyé NULL parce qu´elle n´a pas marché, et sur laquelle on s´appuie ( exemple SDL : un SDL_LoadBMPSurface qui n´a pas trouvé le fichier dont vous lui parlez, renvoie NULL. Si vous essayez de blitter l´image apres, ça plante...)
- step next, ou " pas a pas" : permet d´avancer sur l´instruction suivante : dans un passage délicat, avancez pas a pas en controlant les valeurs de vos variables.
- step into : si vous etes au dessus d´un appel de fonction, step into permet de rentrer dedans.
- step out : sort de la fonction
- continue : continue d´avancer jusqu´a la fin du programme, ou le prochain breakpoint rencontré ( vous pouvez en mettre plusieurs)
- remonter dans les fonctions : vous avez la possibilité, quand vous etes dans une focntion, de visualiser celle qui l´a appelé.
- d´autres options que vous découvrirez...
Note : un programme lancé en débug, s´il plante, fera un breakpoint a l´endroit ou il a planté : vous pourrez ainsi visualiser les variables actuelles, et voir laquelle n´a pas la bonne valeur et fait tout planter.
PS : si vous voulez débuggueur une application graphique, ne la lancez pas en plein écran ( enlever le SDL_FULLSCREEN si vous etes dans SDL par exemple) le temps du debuggage.
PS2 : l´autre méthode, barbare, est de mettre des printf ou des cout partout... ça peut etre pratique dans certains cas, mais pensez au débuggueur ! !