pdb
est le débogueur Python de base.
Un débogueur permet de placer un point d'arrêt (breakpoint) à n'importe quel endroit d'un programme pour l'arrêter et :
- explorer l'état du programme en cours d'exécution
- tester le code avant de l'appliquer
- suivre la logique d'exécution du programme
Placer un point d'arrêt
Depuis Python 3.7 :
breakpoint()
Ou à l'ancienne :
import pdb; pdb.set_trace()
Commandes pdb
basiques
l(ist)
: affiche 11 lignes du code source autour de la ligne courante- Je suis trop paresseux pour ouvrir le fichier contenant le code source
help l
ll
(long list)l 1, 13
s(tep)
(step into) : exécute la ligne courante, s'arrête à la première occasion possible (soit dans une fonction externe, soit dans la fonction courante)- Voyons ce que fait cette méthode
help s
n(ext)
: continue l'exécution jusqu'à la ligne suivante (en restant dans la fonction courante)- J'espère que la ligne actuelle ne lève pas une exception
help n
b(reak)
: fixe un point d'arrêt (en fonction de l'argument fourni)- Je n'ai plus envie de taper
n
help b
break 52
poser un point d'arrêt à la ligne 52break
sans argument permet de lister tous les points d'arrêt
- Je n'ai plus envie de taper
r(eturn)
: continue l'exécution jusqu'aureturn
de la fonction courante- Je veux sortir de cette fonction
Note : les commandes pdb
sont prioritaires en cas d'existence de variables nommées l
, n
, etc.