Il modulo pdb definisce un debugger interattivo per il codice sorgente dei programmi Python. Supporta l'impostazione (condizionata) dei breakpoint e l'avanzamento riga per riga a livello di codice sorgente, l'ispezione degli stack frame, il listato del codice sorgente e la valutazione di codice Python arbitrario nel contesto di qualunque stack frame. Supporta inoltre il debug post mortem e può essere chiamato sotto il controllo del programma.
Il debugger è estensibile - viene di fatto definito tramite la classe Pdb. Questo modulo attualmente non è documentato ma può venire facilmente compreso attraverso la lettura dei sorgenti. L'interfaccia di estensione utilizza i moduli bdb (non documentato) e cmd.
Il prompt del debugger è "(Pdb) ". L'utilizzo tipico di questo modulo per eseguire un programma sotto il controllo del debugger è:
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'spam'
> <string>(1)?()
(Pdb)
pdb.py può anche venire invocato come script per effettuare il debug di altri script. Per esempio:
python /usr/local/lib/python1.5/pdb.py myscript.py
L'utilizzo tipico per ispezionare un programma andato in crash è:
>>> import pdb
>>> import mymodule
>>> mymodule.test()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "./mymodule.py", line 4, in test
test2()
File "./mymodule.py", line 3, in test2
print spam
NameError: spam
>>> pdb.pm()
> ./mymodule.py(3)test2()
-> print spam
(Pdb)
Il modulo definisce le seguenti funzioni; ciascuna avvia il debugger in un modo leggermente diverso:
| statement[, globals[, locals]]) |
| expression[, globals[, locals]]) |
| function[, argument, ...]) |
| ) |
| traceback) |
| ) |
sys.last_traceback.