Next / Previous / Contents / Shipman's homepage

27.3. Commands available in pdb

The debugger prompts with a line like this:


At this prompt, you can type any of the pdb commands discussed below. You can abbreviate any command by omitting the characters in square brackets. For example, the where command can be abbreviated as simply w.


Evaluate an expression expr and print its value.


Execute a Python statement stmt. The “!” may be omitted if the statement does not resemble a pdb command.

(empty line)

If you press Enter at the (pdb) prompt, the previous command is repeated. The list command is an exception: an empty line entered after a list command shows you the next 11 lines after the ones previously listed.


Display the argument names and values to the currently executing function.

b[reak] [[filename:]lineno[,condition]]

The break command sets a breakpoint at some location in your program. If execution reaches a breakpoint, execution will be suspended and you will get back to the (pdb) prompt.

This form of the command sets a breakpoint at a specific line in a source file. Specify the line number within your source file as lineno; add the filename: if you are working with multiple source files, or if your source file hasn't been loaded yet.

You can also specify a conditional breakpoint, that is, one that interrupts execution only if a given condition evaluates as true. For example, the command break 92,i>5 would break at line 92 only when i is greater than 5.

When you set a breakpoint, pdb prints a “breakpoint number.” You will need to know this number to clear the breakpoint.

b[reak] [function[,condition]]

This form of the break command sets a breakpoint on the first executable statement of the given function.


Resume execution until the next breakpoint (if any).

cl[ear] [lineno]

If used without an argument, clears all breakpoints. To clear one breakpoint, give its breakpoint number (see break above).

h[elp] [cmd]

Without an argument, prints a list of valid commands. Use the cmd argument to get help on command cmd.

l[ist] [begin[,end]]

Displays your Python source code. With no arguments, it shows 11 lines centered around the current point of execution. The line about to be executed is marked with an arrow (->), and the letter B appears at the beginning of lines with breakpoints set.

To look at a given range of source lines, use the begin argument to list 11 lines around that line number, or provide the ending line number as an end argument. For example, the command list 50,65 would list lines 50-65.


Like step, but does not stop upon entry to a called function.


Exit pdb.


Resume execution until the current function returns.


Single step: execute the current line. If any functions are called in the current line, pdb will break upon entering the function.


Same options and behavior as break, but the breakpoint is temporary, that is, it is removed after the first time it is hit.


Shows your current location in the program as a stack traceback, with an arrow (->) pointing to the current stack frame.