Déboguer avec pdb
Utilisez le débogueur intégré de Python pour parcourir le code de manière interactive.
Déboguer avec pdb est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Qu’est-ce que pdb ?
pdb est le débogueur interactif intégré de Python. Il vous permet de suspendre l’exécution, d’inspecter les variables et de parcourir le code ligne par ligne.
import pdb
def faulty(n):
result = n * 2
pdb.set_trace() # execution pauses here
return result + 1
faulty(5)breakpoint() — Python 3.7 ou version ultérieure
breakpoint() est un raccourci intégré pour import pdb; pdb.set_trace(). Il respecte la variable d’environnement PYTHONBREAKPOINT.
def process(data):
for item in data:
if item < 0:
breakpoint() # drop into pdb here
print(item)
process([1, -2, 3])Commandes essentielles de pdb
Commandes essentielles : n (ligne suivante), s (entrer), c (continuer), q (quitter), p expr (afficher), l (lister le code source).
# Inside pdb prompt:
# (Pdb) n — execute next line
# (Pdb) s — step into function
# (Pdb) c — continue to next breakpoint
# (Pdb) p my_var — print value
# (Pdb) l — show source around current line
# (Pdb) q — quitInspecter les variables
Utilisez p pour afficher une expression, pp pour un affichage mis en forme et locals() pour voir toutes les variables locales.
# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
# 'num': 42}
# (Pdb) p locals()Points d’arrêt conditionnels
Définissez des points d’arrêt conditionnels pour suspendre l’exécution uniquement lorsqu’une condition est vraie et éviter les étapes répétées.
import pdb
def process(items):
for i, item in enumerate(items):
if item < 0: # manual condition
pdb.set_trace()
result = item * 2
# Or inside pdb: b filename.py:12, x < 0Débogage post-mortem
Inspectez l’état juste après une exception non gérée à l’aide de pdb.post_mortem() ou exécutez votre script avec python -m pdb script.py.
import pdb
try:
1 / 0
except ZeroDivisionError:
pdb.post_mortem() # inspect at the crash point
# Or from CLI:
# python -m pdb my_script.pyObserver les variables avec w et where
w (where) affiche la trace actuelle de la pile d’appels, afin que vous sachiez comment vous êtes arrivé au cadre actuel.
# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()Passer d’un cadre à l’autre
u (up) et d (down) permettent de passer d’un cadre de la pile d’appels à l’autre afin d’inspecter les variables des fonctions appelantes.
# (Pdb) u — move to calling frame
# (Pdb) d — move back down
# (Pdb) p data — inspect variable in that frameipdb — Débogueur amélioré
ipdb enrichit pdb avec les fonctionnalités d’IPython : la complétion par tabulation, la coloration syntaxique et les commandes magiques.
# pip install ipdb
import ipdb
def calc(x):
ipdb.set_trace()
return x ** 2
calc(7)pudb — Débogueur visuel dans le terminal
pudb fournit un débogueur TUI en plein écran dans le terminal, avec des panneaux pour le code, les variables et la pile.
# pip install pudb
# python -m pudb my_script.py
import pudb
def run():
pudb.set_trace()
data = [1, 2, 3]
return sum(data)Désactiver les points d’arrêt en intégration continue
Définissez PYTHONBREAKPOINT=0 pour que tous les appels à breakpoint() soient sans effet en intégration continue ou en production.
# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skippedVérification rapide
Quelle commande de pdb poursuit l’exécution jusqu’au prochain point d’arrêt ?
Récapitulatif
Utilisez breakpoint() pour suspendre l’exécution et entrer dans pdb. Commandes principales : n, s, c, p et q. Pour une expérience plus riche, essayez ipdb ou pudb. Désactivez-le avec PYTHONBREAKPOINT=0 en intégration continue.
Questions Fréquemment Posées
La leçon « Déboguer avec pdb » est-elle gratuite ?
Oui — le texte complet de « Déboguer avec pdb » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Déboguer avec pdb » ?
Utilisez le débogueur intégré de Python pour parcourir le code de manière interactive. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Déboguer avec pdb » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases du module logging
- Gestionnaires, formateurs et filtres
- Journalisation structurée
- Déboguer avec pdb