Aller au contenu principal

Débogueur

Plutôt que d'ajouter des print un peu partout pour comprendre pourquoi votre code ne fonctionne pas comme prévu, le débogueur de VS Code permet d'arrêter l'exécution ligne par ligne et d'inspecter le contenu des variables en tout temps.

Vue d'ensemble du débogueur

Points d'arrêt (breakpoints)​

Cliquez dans la marge à gauche du numéro de ligne pour ajouter un point rouge, c'est un point d'arrêt. Lorsque vous démarrez le débogueur, l'exécution va se mettre en pause dès qu'elle atteint cette ligne (avant de l'exécuter).

Point d'arrêt dans la marge

Vous pouvez ajouter plusieurs points d'arrêt dans le même fichier, ou même dans plusieurs fichiers. Le panneau Breakpoints (en bas de l'onglet Run and Debug) liste tous vos points d'arrêt, vous pouvez les désactiver temporairement sans les supprimer en décochant la case.

Panneau Breakpoints

Démarrer le débogueur​

Appuyez sur F5 (ou l'icône ▷ avec un insecte dans la barre d'exécution) pour démarrer votre programme en mode débogage. Sans point d'arrêt, le programme s'exécute normalement du début à la fin. Avec un point d'arrêt, l'exécution se met en pause à la ligne concernée.

Menu pour démarrer le débogueur

Une fois en pause, une barre de contrôle apparaît avec les boutons suivants:

Barre de contrôle du débogueur

  • Continue (F5) : reprend l'exécution normale jusqu'au prochain point d'arrêt.
  • Step Over (F10) : exécute la ligne actuelle au complet, puis se remet en pause à la ligne suivante. Si la ligne appelle une fonction, la fonction s'exécute au complet sans s'y arrêter.
  • Step Into (F11) : comme Step Over, mais si la ligne actuelle appelle une fonction, entre dans cette fonction pour la suivre ligne par ligne.
  • Step Out (Shift+F11) : termine l'exécution de la fonction actuelle au complet, puis se remet en pause juste après l'endroit où cette fonction a été appelée.
  • Restart (Ctrl+Shift+F5) : redémarre le programme depuis le début.
  • Stop (Shift+F5) : arrête complètement le débogueur.

Inspecter les variables​

Pendant que l'exécution est en pause, le panneau Variables (dans l'onglet Run and Debug, à gauche) affiche le contenu de toutes les variables actuellement accessibles, mis à jour automatiquement à chaque pause. Vous pouvez aussi passer votre curseur directement sur une variable dans le code pour voir sa valeur.

Panneau Variables

Watch​

Si vous voulez surveiller la valeur d'une expression précise (pas juste une variable) à travers toute l'exécution, ajoutez-la dans le panneau Watch (juste sous Variables). Par exemple, a + b ou len(liste) > 0.

Panneau Watch

Call Stack (pile d'appels)​

Le panneau Call Stack montre la chaîne des appels de fonctions qui ont mené jusqu'à la ligne actuelle: quelle fonction a appelé quelle fonction. Cliquer sur un élément de la pile vous amène voir l'état des variables à ce niveau d'appel précis.

Panneau Call Stack

Points d'arrêt conditionnels​

Faites un clic droit sur un point d'arrêt existant (ou dans la marge avant d'en créer un) et choisissez Add Conditional Breakpoint. Vous pouvez alors entrer une expression booléenne, l'exécution ne se mettra en pause que si cette condition est vraie. Très utile dans une boucle, par exemple pour arrêter seulement lorsque i == 47 plutôt que de devoir continuer manuellement 47 fois.

Console de débogage​

Pendant que l'exécution est en pause, l'onglet Debug Console (en bas) permet d'exécuter n'importe quelle expression Python avec l'état actuel des variables. Utile pour tester rapidement une hypothèse sans modifier votre code.