Le debug avec VS Code
Objectifs
À la fin de cette séance, vous serez capables de :
- Utiliser le debugger de VS Code plutôt que des
print() - Placer et gérer des breakpoints
- Naviguer dans le code pas à pas
- Observer l’état des variables
- Utiliser Watch et la Debug Console
Introduction
Jusqu’à maintenant, vous avez probablement utilisé des print() ou le débogueur pour comprendre ce qui se passe dans votre code. C’est une approche basique, mais elle devient vite inefficace sur des projets complexes.
Le debugger de VS Code est un outil qui vous permet de :
- Mettre en pause le code à un moment précis
- Observer toutes les variables et leur contenu
- Avancer pas à pas dans le code
- Modifier les valeurs en temps réel
1. Pourquoi le debugger plutôt que des print() ?
1.1 Les limites des print()
def calculer_remise(prix, pourcentage, montant_min):
remise = prix * pourcentage / 100
print(f"prix={prix}, pourcentage={pourcentage}, remise={remise}") # À ajouter partout !
if remise > montant_min:
print(f"Remise appliquée: {remise}") # Changer les conditions, réexecuter
prix_final = prix - remise
else:
print(f"Remise trop faible: {remise} < {montant_min}")
prix_final = prix
print(f"prix_final={prix_final}") # À supprimer après
return prix_final
Problèmes :
- Vous devez ajouter des
print()partout - Vous devez relancer le programme à chaque modification
- Impossible de “sauter en arrière” pour voir l’état précédent
- Difficile à utiliser en équipe (traces partout dans le code)
1.2 Avec le debugger
def calculer_remise(prix, pourcentage, montant_min):
remise = prix * pourcentage / 100 # ← Breakpoint ici
if remise > montant_min:
prix_final = prix - remise
else:
prix_final = prix
return prix_final
Avantages :
- Mettez simplement un breakpoint
- Exécution pausée au breakpoint
- Inspectez toutes les variables en temps réel
- Avancez ligne par ligne
- Zéro modification du code
2. Configuration du debugger
2.1 Installation
VS Code inclut le debugger Python par défaut, mais vous avez besoin d’une extension :
- Ouvrez VS Code
- Allez à l’onglet Extensions (Ctrl+Shift+X)
- Cherchez “Python”
- Installez l’extension Microsoft “Python”
2.2 Créer une configuration de debug
Créez un fichier .vscode/launch.json à la racine de votre projet :
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Script courant",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}
Explication :
"program": "${file}": Débogue le fichier actuellement ouvert"console": "integratedTerminal": Affiche la sortie dans le terminal VS Code"justMyCode": true: Ignore le code des bibliothèques (plus clair)
3. Mettre des breakpoints et naviguer dans le code
3.1 Placer un breakpoint
Un breakpoint arrête l’exécution à une ligne spécifique. C’est simple :
- Cliquez à gauche du numéro de ligne (dans la gouttière)
- Un point rouge apparaît
- Exécutez en mode debug
- L’exécution pause à ce breakpoint
3.2 Lancer le debugger
Option 1 : Bouton “Run” en haut à droite → Sélectionner “Python: Script courant”
Option 2 : Raccourci clavier
F5 (Lancer le debugger)
Option 3 : Menu Debug → Start Debugging
3.3 Les commandes de navigation
Une fois suspendu au breakpoint, vous pouvez :
- Continue (F5) : Reprendre jusqu’au prochain breakpoint
- Step Over (F10) : Exécuter la ligne actuelle et s’arrêter à la suivante
- Step Into (F11) : Entrer dans une fonction appelée
- Step Out (Shift+F11) : Sortir de la fonction actuelle
4. Observer les variables : Watch et Local
4.1 Le panneau Local
Quand vous êtes au breakpoint, le panneau Debug (à gauche) affiche :
- Local : Les variables dans la fonction actuelle
- Global : Les variables globales
- Builtins : Les variables intégrées Python
Chaque variable montre :
- Son nom
- Sa valeur
- Son type
4.2 Observer une expression avec Watch
Watch permet de surveiller une expression spécifique
Au breakpoint :
- Allez au panneau Debug (à gauche)
- Trouvez la section “Watch”
- Cliquez le “+”
- Tapez une expression :
prix * pourcentage / 100 - La valeur s’affiche en temps réel
4.3 Évaluer le code à la volée
La Debug Console vous permet d’exécuter du code Python quand vous êtes au breakpoint :
>>> prix
100
>>> pourcentage
15
>>> prix * pourcentage / 100
15.0
C’est très utile pour tester des calculs sans modifier le code !
5. Comment déboguer efficacement
- Placer un breakpoint au début de la fonction
- Lancer le debugger (F5)
- Avancer ligne par ligne (F10)
- Observer comment les variables changent
- Identifier où le bug se produit
Exercice 1 : Premier breakpoint
Créez une fonction additionner(a, b) qui retourne la somme de deux nombres.
- Placez un breakpoint au début de la fonction
- Lancez le debugger
- Observez les variables
aetbdans le panneau Local - Avancez pas à pas
- Observez la variable
resultat
Exercice 2 : Déboguer une boucle
Créez une fonction qui affiche les carrés des nombres de 1 à 5 :
def afficher_carres():
for i in range(1, 6):
carre = i ** 2
print(f"{i}² = {carre}")
afficher_carres()
- Placez un breakpoint dans la boucle
- Lancez le debugger
- Avancez pas à pas (F10)
- Observez comment
ietcarrechangent