We're back after a server migration that caused effbot.org to fall over a bit harder than expected. Expect some glitches.

The pdb module

This is the standard Python debugger. It is based on the bdb debugger framework.

You can run the debugger from the command line. Type n (or next) to go to the next line, help to get a list of available commands.

$ pdb.py hello.py
> hello.py(0)?()
(Pdb) n
> hello.py()
(Pdb) n
hello again, and welcome to the show
--Return--
> hello.py(1)?()->None
(Pdb)

You can also start the debugger from inside a program.

Example: Using the pdb module
# File: pdb-example-1.py

import pdb

def test(n):
    j = 0
    for i in range(n):
        j = j + i
    return n

db = pdb.Pdb()
db.runcall(test, 1)

> pdb-example-1.py(3)test()
-> def test(n):
(Pdb) s
> pdb-example-1.py(4)test()
-> j = 0
(Pdb) s
> pdb-example-1.py(5)test()
-> for i in range(n):
...