Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parVirgile Jules Beauchemin Modifié depuis plus de 8 années
1
Comment utiliser le débogueur de Visual Studio 2010 1/8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
2
Table des matières Créer un nouveau projet Les outils de VS : Les points d’arrêts Le mode pas-à-pas Les variables locales Les espions Les erreurs communes : Boucles infinies Lecture et écriture dans une case inaccessible d’un tableau La pile des appels de VS 1/8/2015 INF145 2
3
Créer un nouveau projet 1/8/2015 INF145 3 -Cliquez sur : Fichier/Nouveau/Projet.. -Cliquez sur « Projet vide » -Entrez le nom du projet (judicieusement) -Choisissez le répertoire du projet intelligemment (clé USB, espace privé)
4
1/8/2015 INF145 4 -Clique-droit sur « Fichiers sources » dans l’Explorateur de solutions -Choisir « Ajouter » -Choisir « Nouvel élément… » Créer un nouveau projet
5
1/8/2015 INF145 5 -Cliquez sur fichier C++ (on programme en C mais l’extension est.cpp) -Nommez votre fichier (ex : « lab1_3 » pour le Labo 1, exercice 3 ) -Assurez vous que le fichier est créé dans le répertoire du projet -Cliquez sur « Ajouter » Créer un nouveau projet
6
Les points d’arrêts Les points d’arrêts où les « breakpoints » servent à pauser les programmes lors de l’exécution du programme. On clique à gauche de la ligne où on veut arrêter le programme (dans la marge grise de la fenêtre d’édition) Utile pour voir la trace à un certain moment de l’exécution (voir la section des variables locales). Après l’usage d’un point d’arrêt, on utilise le mode pas-à-pas Suite à un point d’arrêt, on peut utiliser la pile des appels 1/8/2015 INF145 6
7
Point d’arrêt et mode pas à pas 1/8/2015 INF145 7 Pas à pas
8
Mode pas-à-pas 1/8/2015 INF145 8 : Quand on clique sur le pas à pas détaillé : celle-ci nous amène dans la fonction (À ne PAS faire sur des fonctions que vous n’avez pas programmés. Ex : printf( ); ) : Le pas à pas principal va vous faire sauter par dessus des fonctions. Parfois utile, mais pas toujours (À faire par dessus les printf( ); ). : Le pas à pas sortant va vous faire sortir de la fonction courante (C’est rare qu’on l’utilise. On peut ainsi sortir d’un printf( ); ).
9
Les variables locales (tracer) Les « Variables locales » servent à suivre la trace des variables. Elles sont très utiles quand la trace du programme est complexe et qu’on ne peut pas le faire mentalement ou en utilisant une multitude d’affichages dans la console. La fenêtre de débogage « Variables locales » va automatiquement afficher les valeurs des variables directement concernées par la ligne de code en mode arrêt. 1/8/2015 INF145 9
10
Les variables locales (tracer) 1/8/2015 INF145 10
11
Les variables locales (tracer) 1/8/2015 INF145 11 Quand je mets mon « breakpoint », je vois que les 3 variables de ma fonction ne sont pas initialisées.
12
Les variables locales (tracer) 1/8/2015 INF145 12 Après un pas à pas détaillé, je vois que la variable « i » vient d’être initialisée avec la valeur 0 (affiché en rouge).
13
Les espions Les fenêtres « Espion.. » servent (entre autres) à voir: -La valeur des cases d’un tableau alloué dynamiquement -La valeur d’une condition ou d’une fonction -Valeurs des variables qui ne sont pas concernées par la ligne de code en mode arrêt (mais doivent être du même bloc) 1/8/2015 INF145 13
14
Les espions 1/8/2015 INF145 14 Voici comment on ouvre une (ou plusieurs) fenêtres « Espion.. ».
15
Les espions 1/8/2015 INF145 15 Pour tout ce qui n’apparait pas à l’aide des variables locales, on utilise les fenêtres-espions. On peut alors voir si le tableau « dessin->tab[] » est initialisé avec des 0. La case [-1][-3] ne peut être lue, car l’espace mémoire n’est pas alloué à cette adresse (débordement de tableau).
16
Boucles infinies Le programme est-il dans une boucle infinie? - Le programme fonctionne, mais n’arrête jamais à moins qu’on l’arrête manuellement (bouton ). 1/8/2015 INF145 16 - On utilise les espions pour voir le résultat de chacune de nos conditions de la boucle. Pour sortir de la boucle, il faut qu’une de ces conditions soit FALSE. Ici nous testons un appel de fonction.
17
Lecture/écriture dans une case inaccessible d’un tableau Ceci se produit lorsque vous tentez d’écrire dans un espace mémoire d’un tableau qui n’est pas alloué. La source de ce problème vient souvent des boucles, vous devez donc vérifier les conditions de vos boucles « for » et « while ». Soyez vigilant avec vos conditions d’itérations. Les indices d’un tableau de 8 cases vont de [0] à [7] : 1/8/2015 INF145 17
18
Lecture/écriture dans une case inaccessible d’un tableau 1/8/2015 INF145 18 Le programme essaie d’écrire dans la case [8] qui n’est pas dans le tableau BON MAUVAIS et grave! MAUVAIS BON Le programme oublie d’écrire dans la case [7] qui est la dernière du tableau
19
La pile des appels La fenêtre « Pile des appels » ou le « call stack » sert à voir le cheminement du programme jusqu’à ce qu’un bogue se produise. On recule dans la pile en suivant les appels précédents jusqu’à ce qu’on trouve l’endroit où l’erreur survient. Si vous appelez plusieurs fois une même fonction et vous ne savez pas à quel appel elle est rendue, le « call stack » peut vous aider. 1/8/2015 INF145 19
20
La pile des appels 1/8/2015 INF145 20 Voici comment activer la fenêtre de la « Pile des appels ».
21
La pile des appels 1/8/2015 INF145 21 Avec le mode pas-à-pas, le programme c’est rendu là où la flèche se trouve. En suivant les variables locales, j’ai réalisé que ma trace ne suivait pas la logique que je voulais. Je vais donc utiliser la pile des appels pour revenir sur mes pas et voir où l’erreur survient.
22
1/8/2015 INF145 22 Ici, l’exécution du code est à la ligne 142 du programme. On double clique sur les lignes en dessous d’où le programme est rendu dans l’appel de la pile. Le débogueur me ramène là où la fonction a été appelée ligne 93. (Ça va être utile quand nous aurons plusieurs fichiers sources). La pile des appels
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.