Aide-mémoire: commandes PDB

La majorité des programmeurs Python utilise le print pour déboguer leurs programmes. C’est simple et efficace. Mais il y a des cas plus pointus qui nécessitent un outil plus puissant. pdb en est un.

pdb est un débogueur python en ligne de commande. Il s’inspire de gdb qui est utilisé par les programmeurs de langages compilés tels C et C++.

Parce qu’on ne l’utilise pas souvent, il est facile d’oublier comment on utilise pdb. Voici donc un résumé des commandes. Les crochets [] indiquent les informations optionnelles et la barre verticale | sépare les alternatives d’un choix.

Commande Description
L [début [, fin | nombre]] Liste les lignes du code source. Sans paramètre additionnel, 11 lignes seront affichées, de part et d’autre de la ligne courante.
Le premier paramètre est le numéro de la première ligne à afficher. Le second paramètre est le numéro de la ligne de fin. Si ce second paramètre est inférieur au premier, il représente alors un nombre de lignes.
LL Liste toutes les lignes de la fonction courante. Si aucune fonction n’est en cours, liste tout le fichier courant.
N Exécute l’énoncé courant. S’il s’agit d’un appel de fonction, exécute la fonction au complet.
S Exécute l’énoncé courant. S’il s’agit d’un appel de fonction, le contexte deviendra celui de la fonction.
R Retourne au contexte précédent.
B Liste les points d’arrêts (breakpoints) actifs.

B [fichier:]ligne [condition]

Insère un point d’arrêt à la ligne spécifiée. Si une condition est spécifiée, le point d’arrêt ne sera effectif que si cette condition est vraie.
CL [numéro] Retire le point d’arrêt dont le numéro est spécifié. Si aucun n’est spécifié, retire tous les points d’arrêt.

Pour utiliser pdb, il suffit de spécifier son nom sur la ligne de commande:

python3 -m pdb monProg.py mesParamètres

On peut aussi lancer pdb si notre programme détecte une condition anormale. Il suffit d’ajouter une ligne à l’endroit désiré:

breakpoint()

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *