Python pdb

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

  1. 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
  2. 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
  3. 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
  4. 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 52
    • break sans argument permet de lister tous les points d'arrêt
  5. r(eturn) : continue l'exécution jusqu'au return 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.

Sources

Avant Écriture inclusive Après Module pathlib en Python

Tag Kemar Joint