pdb.py - why is this debugger different from all other debuggers?

R. Bernstein rocky at panix.com
Thu Jan 5 23:04:37 EST 2006

rurpy at yahoo.com writes:

> I was disappointed not to see any replies to this.
> I use pdb a lot because most of my debugging needs
> are simple, and I don't need/want the overhead or
> complications of a heavy duty gui debugger.
> I used ddd only little many many years ago, but
> compatibility with existing tools I think is a big plus.
> I would certainly consider using such a combination,
> and even without ddd I think being behaving similarly
> to existing tools is a "good thing".
> I hope some of the other problems with it get
> addressed some day:
> - There is no way (I know of) to start a python script
>   from the command line with the debugger active;
>   I always have to modify the source to insert a
>   pdb.set_trace().  I would like something like Perl's
>   -d option.
> - Exceptions often don't stop debugger in routine
>   where they occurred; instead you are dumped
>   into a higher (lower?) stack frame and have to
>   navigate back to the frame the exception
>   occurred in.
> - It needs something like the Perl debugger's
>   X command to display full information about
>   an object (value and attributes).
> - The help command is lame giving just a list
>   of commands (which are often a single character)
>   with no hint of what they do.

Thanks for your kind words and comments. As Fernando Perez mentioned,
one way to address the lack of a corresponding "perl -d" option is to
use ipython. And my current thought is that when one installs ddd it
will install a pdb command -- perhaps just make a symbolic link from
/usr/bin/pdb to the right place. So this may help a little -- even if
one doesn't *use* ddd.

As for the things that are not addressed by ipython, the above list of
desirable features is helpful . Adding an X command, extending the
help command to be say more like gdb's seems straight forward.

Adjusting the stack frame when an exception is not handled is probably
doable too.

More information about the Python-list mailing list