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 lll(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 bbreak 52poser un point d'arrêt à la ligne 52breaksans argument permet de lister tous les points d'arrêt
- Je n'ai plus envie de taper
r(eturn): continue l'exécution jusqu'aureturnde 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.