Aller au contenu principal

🐞 DĂ©boguer

DĂ©boguer signifie observer l’exĂ©cution de notre programme Ă©tape par Ă©tape pour comprendre son comportement, trouver des erreurs (bugs), ou vĂ©rifier l’état des variables.

PyCharm offre un excellent environnement de débogage avec des outils visuels intégrés.


Point d'arrĂȘt​

Un point d’arrĂȘt (breakpoint) permet de dire Ă  PyCharm : "ArrĂȘte ici quand tu exĂ©cutes le programme."

  1. Ouvrir un fichier .py.
  2. Cliquer dans la marge gauche Ă  cĂŽtĂ© d’une ligne de code pour y placer un point rouge (le point d’arrĂȘt).
i = 0
while i < 5:
carre = i * i
print(f"{i}ÂČ = {carre}")
i += 1

point

  1. Cliquer sur le bouton point Debug (Ă  cĂŽtĂ© du bouton ▶ Run).
  2. Le programme s’arrĂȘtera Ă  cette ligne, et PyCharm affichera la fenĂȘtre de dĂ©bogage avec la pile d'appels Ă  gauche et les variables Ă  droite :

point

Exécution pas à pas

Lorsqu’un point d’arrĂȘt est atteint, on peut faire :

  • Stop Stop : arrĂȘter l’exĂ©cution.
  • Resume Resume : continuer l’exĂ©cution jusqu’au prochain point d’arrĂȘt rencontrĂ©.
  • Step Over Step Over : exĂ©cuter la ligne actuelle (mais sans entrer dans les fonctions appelĂ©es).
  • Step Into Step Into : entrer dans la fonction appelĂ©e pour voir ce qu’elle fait.
Supprimer un point d’arrĂȘt

Pour retirer un point d’arrĂȘt, cliquer Ă  nouveau dessus dans la marge gauche.


Évaluer une expression​

Quand l'exĂ©cution est arrĂȘtĂ©e Ă  un point d’arrĂȘt, on peut Ă©valuer une expression, c'est-Ă -dire voir le rĂ©sultat d’un calcul ou le contenu d’une variable.

  1. Cliquer dans l'espace Evaluate Expression dans la fenĂȘtre de dĂ©bogage.
  2. Taper ou copier-coller une expression Python (par ex. i + 1, carre, ou i * i).
  3. Le rĂ©sultat s’affiche immĂ©diatement, sans modifier le programme (dans result).

point


Visualiser la pile d'appels​

Visualiser la pile d'appels

Le débogueur permet d'inspecter tous les détails de la pile d'appels.

Copiez le code ci-dessous dans un script, mettez un point d'arrĂȘt sur la ligne 12 (valeur = ...) et exĂ©cutez le script en mode dĂ©bogage.

def ajouter(x, y):
return x + y

def multiplier(x, y):
return x * y

def calculer_expression(a, b, c):
somme = ajouter(a, b)
resultat = multiplier(somme, c)
return resultat

valeur = calculer_expression(2, 3, 4)
print(valeur) # Affiche 20

Pour entrer dans les fonctions appelées en mode débogage, il faut utiliser le bouton Step Into Step Into.
Lorsque vous entrez dans la fonction calculer_expression, vous voyez :

  • cette fonction s'ajouter au sommet de la pile d'appels (Ă  gauche),
  • les paramĂštres a, b et c apparaĂźtre dans la liste des variables (Ă  droite) :

Si vous appuyez de nouveau sur Step Into, vous entrez dans la fonction ajouter.
Vous pouvez voir que la fonction ajouter est maintenant au sommet de la pile d'appels, et les paramÚtres x et y sont affichés dans la liste des variables :

Remarquez que les paramĂštres a, b et c de calculer_expression ne sont plus visibles, car vous ĂȘtes maintenant dans la fonction ajouter et a, b et c sont hors de portĂ©e.

Vous pouvez cliquer sur le nom de la fonction calculer_expression dans la pile d'appels pour revenir Ă  cette fonction et voir ses paramĂštres Ă  nouveau :

Lorsque vous faite une trace d'un code avec des appels de fonctions, il est nécessaire de noter la pile d'appels et les variables locales à chaque étape.

Le débogueur est alors le meilleur outil pour valider votre trace... sauf en examen!