Hébergement - Code .Net

Visual Basic/C# – Débogage avec Visual Studio

Ce tutoriel couvrira les bases du débogage avec Visual Studio pour C# et Visual Basic (le code est en Visual Basic, toutefois le principe et les informations sont les mêmes en C#). Je met en ligne le tutoriel pour vous donner une longueur d’avance à comprendre vraiment ce que votre ordinteur fait avec le code entré et pouvoir suivre son exécution.

Pour commencer, qu’est-ce que j’entend par débogage? La programmation donne souvent le résultat d’un constant combat à réparer du code pour s’assurer qu’il fait ce qui était planifié au tout début. Toutefois, ne laissez pas cette tâche hardue vous décourager car Visual Studio possède plusieurs outils permettant de vous simplifier la vie lorsque vous êtes aux prises avec un bogue redoutable. Plusieurs des bogues seront repérés par le compilateur avant même que vous exécutiez votre programme en cliquant sur Start. Ces bogues sont généralement les plus simples à trouver et à réparer.

Tutorial 7 build error

Visual Studio vous dira que vous avez une erreur au niveau de votre syntaxe ou votre logique et vous expliquera la ou les causes possibles. Il ne vous restera qu’à réparer ces erreurs!

Visual Studio Build error description

Une fois que vous aurez tenté de rouler votre programme en cliquant sur Start, Visual studio vous montrerra une fenêtre spéciale (Error List) regroupant toutes ces erreurs ainsi que les informations associées à chacune d’elles.

Dans le cas de notre exercice sur le If, nous avons uniquement une erreur et nous savons déjà quelle en est la cause, Positive est mal écrit et Visual Studio nous dit qu’elle n’existe pas parce qu’il n’en trouve pas la déclaration. Normal puisqu’elle est mal écrite!

Ce bogue était facile à trouver, mais certains bogues ne vous laisseront pas cette chance. Je parle plus spécifiquement des bogues logiques ou au “runtime” donc qui arrivent durant l’exécution du programme. Mais ne vous découragez pas plus! Visual Studio a encore la solution pour rendre votre vie un peu plus facile!

Breakpoints!

Les breakpoints (ou points d’arrêt) seront vos meilleurs amis lorsque vous n’aurez aucune idée de l’endroit où se trouve un bogue en particulier. Par exemple, pourquoi est-ce que la valeur de cette variable est à 5 alors que je l’ai initialisé à 4? Dans un petit code comme celui de l’exercice 2 il peut sembler facile de régler une telle erreur, mais imaginez que vous avez des centaines de lignes de code. Bonne chance pour trouver la source de cette erreur, surtout si elle provient d’un changement fait par un autre programmeur ou pire encore, un changement que vous avez fait pour réparer autre chose.

Vous comprenez le concept, mais qu’est-ce qu’un breakpoint? Un breakpoint est un cercle rouge apparaissant dans la marge gauche de votre code. Il arrêtera l’exécution de votre programme lorsque l’ordinateur arrivera à la ligne désignée. N’est-ce pas intéressant! Vous ne serez maintenant plus aveugles à ce que votre programme fait réellement car vous pourrez suivre son exécution pas à pas.

Pour utiliser les breakpoints, cliquez dans la marge sur une ligne contenant du code (vous pouvez ouvrir l’exercice sur le if pour faire vos tests). Une fois le breakpoint placé, la ligne deviendra surlignée en rouge.

Breakpoint

Démarrez votre programme avec Start (F5) pour rouler le code. Qu’est-ce qui se passe de différent? L’ordinateur s’est arrêté sur la ligne portant le point d’arrêt et a surligné celle-ci en jaune. Ceci veut dire que l’ordinateur attend maintenant votre signal pour continuer son exécution. C’est vous le maître!

Repérez la barre d’outil en haut de votre interface Visual Studio contenant les 4 boutons ci-dessous, nous allons en utiliser 2 plus précisément.

Debug tools

D’après le rectange rouge de l’image ci-dessus :
La premier bouton sert à mettre le focus sur la ligne à être exécutée, n’oubliez pas que ce qui est surligné n’est pas encore exécuté. Ceci dit, on ne verra pas le résultat avant la ligne suivante.

Le deuxième bouton est Step into (F11). Si vous voulez “plonger” dans votre code ou plutôt aller à l’intérieur de la méthode courante, vous devez cliquer sur ce bouton. Vous aurez la chance de tester ce fait durant le prochain exercice.

Le troisième bouton est Step over. Celui-ci est très important pour le moment car il nous permet de passer à la prochaine ligne sans entrer dans le code intérieur. Faites le test pour comprendre comment ça fonctionne, ou écoutez le vidéo correspondant au tutoriel 7.

Finalement, le quatrième bouton est Step out, vous permet de revenir en arrière d’une méthode dans laquelle vous êtes plongé.

Encore une fois, vous devriez prendre le temps d’essayer ces boutons avec l’exercice 2 pour vraiment saisir leur utilité. Démarrez le code et arrêtez-vous sur n’importe quelle ligne. Vous pouvez utiliser Continue et Stop (carré rouge) pour continuer jusqu’au prochain point d’arrêt ou arrêter l’exécution complétement.

Les mots clés

Restez en mode débogage sur la ligne selectionnée pour mettre le breakpoint. Vous pouvez passer votre souris par dessus n’importe quel mot-clé ou variable etc, pour avoir des détails techniques. Par exemple, si je met ma souris sur Negative, je peux voir que sa valeur est False. Ceci, même avant de l’avoir initialisée. Cette découverte nous annonce que Visual Basic met une valeur dans les variables au moment de leur déclaration.

Debug Negative Value

Note: il est, selon mon expérience, une bonne pratique de quand même initialiser ses variables explicitement pour éviter les erreurs futurs. Pensez au prochain programmeur qui travaillera sur votre code!

Variables locales

Lorsque vous êtes en mode débogage (donc lorsque votre programme est arrêté sur un breakpoint), vous devriez voir une fenêtre nommée Locals, si vous ne la voyez pas, allez simplement dans le menu Debug -> Windows -> Locals pour la faire apparaître.

Cette fenêtre montre les variables locales à votre code où vous êtes présentement arrêté. Ceci donne une excellente vue d’ensemble.

Voici un exemple de ce que vous pouvez retrouver dans cette fenêtre.

Locals window

Dans notre cas, il est possible de voir les deux variables, soit Positive et Negative ainsi que leur valeur courante dans l’état actuel du programme au moment de l’arrêt.

Allons un peu plus en détails

J’aimerais vous montrer deux dernières choses. La fenêtre Breakpoints et la fenêtre CallStack, elles seront très utiles mais nous n’en aurons pas besoin pour le moment car elles demandent un code un peu plus complexe pour prouver leur savoir faire. Toutefois, ce qui est important est que vous sachiez qu’elles existent!

Voici donc la fenêtre Breakpoints, si elle n’est pas visible, vous pouvez aller la chercher dans le menu Debug -> Windows -> Breakpoints. Breakpoints est utilisée pour créer des points d’arrêt plus complexes que ceux créés lorsque l’on clique simplement dans la marge. Par exemple il est possible de fixer des conditions d’arrêt ou encore des nombres de frappes avant arrêt. On peut aussi désactiver des points d’arrêt et en ajouter, en supprimer et autre.

Breakpoint Window

Un outil très puissant que nous utiliserons davantage plus tard (essayez de cliquer droit sur un point d’arrêt).

La pile d’appels ou CallStack est une fenêtre que j’utilise à l’occasion mais qui peut vraiment être utile dans le cas de gros programmes plus complexes. En résumé, elle indique les endroits où l’ordinateur est plongé dans le code au cours de l’exécution. Ne vous en faites pas il sera plus facile de comprendre son utilité au moment où nous verrons les méthodes.

CallStack Window

Pour le moment, la pile d’appels n’est pas très grande car nous restons au niveau de la première méthode du programme. Gardez en tête que ce ne sont pas les seules fenêtres intéressantes pour le débogage dans Visual Studio, je pense aussi à Thread, Watch, Output etc, toutefois nous allons les explorer dans d’autres tutoriels.

Si vous êtes curieux et que vous souhaitez en savoir plus sur le sujet, je vous invite à aller consulter une autre bonne source du site Web de MSDN de Microsoft directement.

Si vous avez besoin de plus d’aide, n’hésitez pas à commenter et je tenterai de répondre à votre question au meilleur de ma connaissance.

Next article Visual Studio - Comment ajouter les numéros de ligne
Previous article Visual Basic Solution Exercice - Le If

Related posts

0 Comments

No Comments Yet!

You can be first to comment this post!

Leave a Comment

Your data will be safe! Your e-mail address will not be published. Also other data will not be shared with third person. Required fields marked as *