Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.

Slides:



Advertisements
Présentations similaires
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Advertisements

Interactivité et Lingo Interactivité - spécifier le déroulement en fonction des actions de l’usager Ex: Déroulement si l’usager clique Choix dans une liste.
LOGICIEL DOCUMENTAIRE PMB TUTORIEL A L'USAGE DES ELEVES ET DES ENSEIGNANTS Merci à Mme BATBIE, professeur-documentaliste – Collège Charloun Rieu – Saint-Martin.
1 Manuel d’utilisation Application Datamédis® sur Pocket PC Propriété PROMEDIS S.A.
Interface sur laquelle on arrive lorsqu’on atteint le site Tous les champs ci- dessous sont supprimés Liste des clients disponibles Liste des serveurs.
Utiliser le nouveau site internet du lycée niort/
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
Ecran d’accueil Une fois le compte de votre entreprise créé et validé par notre service clients, vous recevrez par , un lien vous invitant à vous.
Réaliser une opération de contournage en fraisage
I- ANALYSE DU BESOIN / Plan
LES TABLEAUX EN JAVA.
Programme Robot Aspirateur
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Initiation aux bases de données et à la programmation événementielle
Algorithme et programmation
Javadoc et débogueur Semaine 03 Version A17.
Algorithmique AU El harchaoui noureddine
Guide d’utilisation.
Programmation avec Scratch
Opérations sur les nombres relatifs
Ajouter le code dans une page html
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
8. Mettre les paramètres du test final
L’Instruction de Test Alternatif
Javadoc et débogueur Semaine 03 Version A16.
Utilisation de la clé USB
Les Instructions – Organigramme
Algorithmique & Langage C
Le navigateur internet
Configuration de routes Statiques Flottantes
Semaine #4 INF130 par Frédérick Henri.
  EXCEL FORMATION d'introduction.
SIT Prestataires OT MASSIF DU SANCY MOD OP 000 – 214
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
La navigation dans les guides d’Antidote 9
Concepts de base de la programmation
Documentation technique (Linux)
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
PROGRAMMATION ET ENSEIGNEMENT
Package R Markdown: Un outil pour générer des pages html avec R Studio
Structure et Services « STS » Documentation et suivi
Exercice PHP DEUST TMIC
Introduction à Internet
Le code à l’école Qu’est-ce que le codage informatique ?
Formation sur les bases de données relationnelles.
Orthographe à retenir :
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
CountrySTAT / FENIX Aperçu globale de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Le jeu de la bière en réseau
Réducteur BCI Comment utiliser ? Question 1 Question 2 Question 3
Gilles BADUFLE À partir d’un PPT modifié du C.A.H.M.
GUIDE DE L’UTILISATEUR DU VOLET WEB DU PROGICIEL EDC
Apprendre le clavier Révision : les touches Mode d’emploi
Chapitre 2 Le Projet Poterie
NUMERATION et REPRESENTATION DES NOMBRES
Semaine #2 INF130 par Frédérick Henri.
Rechercher une sélection d’élèves
Bonjour, Je suis votre guide pour cette visite de votre nouveau logiciel HDS. Je vais vous montrer comment préparer une note de frais.
Chapitre 3: Les scriptes
Exploiter le WEB Etape no5.
Programmation Scratch
PROGRAMMATION ET ENSEIGNEMENT
Quelle est la valeur de S après exécution des instructions suivantes :
Smart Graphic Layout SUJET déclaration
Procédure PIWI Pour inscription d‘un Client ou d‘un collaborateur
STS Web Services libres Gérer les services libres
Python Nicolas THIBAULT
STS Web Services libres Supprimer des services libres
Type Tableau Partie 1 : Vecteurs
Transcription de la présentation:

Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.

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

Créer un nouveau projet 1/8/2015 INF 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é)

1/8/2015 INF Clique-droit sur « Fichiers sources » dans l’Explorateur de solutions -Choisir « Ajouter » -Choisir « Nouvel élément… » Créer un nouveau projet

1/8/2015 INF 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

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

Point d’arrêt et mode pas à pas 1/8/2015 INF145 7 Pas à pas

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( ); ).

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

Les variables locales (tracer) 1/8/2015 INF145 10

Les variables locales (tracer) 1/8/2015 INF Quand je mets mon « breakpoint », je vois que les 3 variables de ma fonction ne sont pas initialisées.

Les variables locales (tracer) 1/8/2015 INF 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).

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

Les espions 1/8/2015 INF Voici comment on ouvre une (ou plusieurs) fenêtres « Espion.. ».

Les espions 1/8/2015 INF 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).

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 INF 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.

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

Lecture/écriture dans une case inaccessible d’un tableau 1/8/2015 INF 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

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

La pile des appels 1/8/2015 INF Voici comment activer la fenêtre de la « Pile des appels ».

La pile des appels 1/8/2015 INF 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.

1/8/2015 INF 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