Débogage avec pdb (optionnel)
Énoncé
Dans cet exercice, nous allons voir comment utiliser le débogueur python standard pdb
.
Le débogueur est un outil nous permettant d'exécuter un programme ligne par ligne, tout en offrant la possibilité d'inspecter la valeur des variables du programmes.
Pour lancer le débogueur sur votre programme prog.py
il faut utiliser la commande suivante.
1 |
|
Dans cet exercice, vous devez utiliser le débogueur pour exécuter pas à pas le programme un_petit_bug.py
disponible ici et affiché ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Une fois le débogueur lancé, votre programme sera arrêté sur la première ligne.
Vous pouvez utiliser la commande help
pour obtenir la liste de toutes les commandes du débogueur.
Vous pouvez ensuite obtenir de l'aide concernant une commande particulière, par exemple step
à l'aide de help step
.
Vous utiliserez en particulier les commandes step
, next
et print
.
Pour plus d'information concernant pdb
vous pouvez consulter la page https://docs.python.org/3.6/library/pdb.html.
Difficulté
Correction
Cliquez ici pour révéler la correction de l'exercice.
Explications
Au démarrage du débogueur, le programme en cours de débogage est interrompu, et se place en attente de commandes de l'utilisateur.
Quelques commandes utiles :
list
affiche le code source en cours de débogage, "autour" de là où s'est arrêté le débogueur. Par exemple :
1 2 3 4 5 6 7 8 9 10 |
|
-
step
permet d'exécuter une ligne de code puis d'interrompre l'exécution du programme juste après. Dans le cas où la ligne à exécuter contient un appel de fonction,step
entre dans le code de cette fonction. -
next
se comporte commestep
, à ceci près qu'on n'entre pas dans le code des fonctions appelées. -
continue
reprend l'exécution du programme jusqu'à sa terminaison, ou jusqu'à tomber sur un point d'arrêt. -
var
affiche la valeur de la variable var. Par exemple :
1 2 |
|
break
place un point d'arrêt dans le programme. S'utilise soit avec un nom de fonction, soit avec un numéro de ligne (possiblement avec un nom de fichier). Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
quit
ferme le debugger.