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
.