Debugging mit pdb
Verwenden Sie den integrierten Python-Debugger, um Code interaktiv schrittweise auszuführen.
Debugging mit pdb ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist pdb?
pdb ist der interaktive Debugger von Python. Damit können Sie die Ausführung anhalten, Variablen untersuchen und den Code Zeile für Zeile durchlaufen.
import pdb
def faulty(n):
result = n * 2
pdb.set_trace() # execution pauses here
return result + 1
faulty(5)breakpoint() – Python 3.7+
breakpoint() ist eine integrierte Kurzform für import pdb; pdb.set_trace(). Die Umgebungsvariable PYTHONBREAKPOINT wird dabei berücksichtigt.
def process(data):
for item in data:
if item < 0:
breakpoint() # drop into pdb here
print(item)
process([1, -2, 3])Grundlegende pdb-Befehle
Wichtige Befehle: n (nächste Zeile), s (in den Aufruf springen), c (fortsetzen), q (beenden), p expr (ausgeben), l (Quelltext auflisten).
# 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 — quitVariablen untersuchen
Verwenden Sie p, um einen Ausdruck auszugeben, pp für eine formatierte Ausgabe und locals(), um alle lokalen Variablen anzuzeigen.
# (Pdb) p data
# [1, -2, 3]
# (Pdb) pp {"key": "value", "num": 42}
# {'key': 'value',
# 'num': 42}
# (Pdb) p locals()Bedingte Haltepunkte
Setzen Sie bedingte Haltepunkte, damit die Ausführung nur angehalten wird, wenn eine Bedingung wahr ist. So vermeiden Sie wiederholtes schrittweises Durchlaufen.
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 < 0Debugging nach einem Fehler
Untersuchen Sie den Zustand unmittelbar nach einer unbehandelten Ausnahme mit pdb.post_mortem() oder führen Sie Ihr Skript mit python -m pdb script.py aus.
import pdb
try:
1 / 0
except ZeroDivisionError:
pdb.post_mortem() # inspect at the crash point
# Or from CLI:
# python -m pdb my_script.pyVariablen mit w und where überwachen
w (where) gibt den aktuellen Aufruf-Stack-Trace aus, damit Sie nachvollziehen können, wie Sie zum aktuellen Frame gelangt sind.
# (Pdb) w
# /app/main.py(10)main()
# -> process([1,-2,3])
# /app/main.py(5)process()
# -> breakpoint()Zwischen Frames wechseln
u (up) und d (down) wechseln zwischen den Frames des Aufruf-Stacks, damit Sie Variablen in aufrufenden Funktionen untersuchen können.
# (Pdb) u — move to calling frame
# (Pdb) d — move back down
# (Pdb) p data — inspect variable in that frameipdb — Erweiterter Debugger
ipdb erweitert pdb um IPython-Funktionen: Tab-Vervollständigung, Syntaxhervorhebung und Magic Commands.
# pip install ipdb
import ipdb
def calc(x):
ipdb.set_trace()
return x ** 2
calc(7)pudb — Visueller Terminal-Debugger
pudb stellt im Terminal einen bildschirmfüllenden TUI-Debugger mit Panels für Code, Variablen und den Stack bereit.
# pip install pudb
# python -m pudb my_script.py
import pudb
def run():
pudb.set_trace()
data = [1, 2, 3]
return sum(data)Breakpoints in CI deaktivieren
Setzen Sie PYTHONBREAKPOINT=0, damit alle Aufrufe von breakpoint() in CI oder der Produktion wirkungslos sind.
# In CI pipeline:
# export PYTHONBREAKPOINT=0
# python my_script.py
# breakpoint() is silently skippedSchnelltest
Welcher pdb-Befehl setzt die Ausführung bis zum nächsten Breakpoint fort?
Zusammenfassung
Verwenden Sie breakpoint(), um die Ausführung anzuhalten und in pdb zu wechseln. Die wichtigsten Befehle sind: n, s, c, p, q. Für eine umfangreichere Benutzeroberfläche können Sie ipdb oder pudb ausprobieren. Deaktivieren Sie Breakpoints in CI mit PYTHONBREAKPOINT=0.
Häufig gestellte Fragen
Ist die Lektion „Debugging mit pdb“ kostenlos?
Ja — der vollständige Text von „Debugging mit pdb“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Debugging mit pdb“?
Verwenden Sie den integrierten Python-Debugger, um Code interaktiv schrittweise auszuführen. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Debugging mit pdb“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.