Here, all you do is import pydb
(if that hasn't been done
already), and call pydb.pm()
or pydb.post_mortem
if you
have a specific traceback object you want to use.
To make this more concrete we will give an example. We have the
following text mymodule.py
def test(): print spam
Now here's a sample session
>>> import mymodule >>> mymodule.test() Traceback (most recent call last): File "<stdin>", line 1, in ? File "mymodule.py", line 2, in test print spam NameError: global name 'spam' is not defined >>> import pydb >>> pydb.pm() (/home/src/external-cvs/pydb/test/mymodule.py:2): test (Pydb) where -> 0 test() called from file '/tmp/mymodule.py' at line 2 ## 1 in file '<stdin>' at line 1 (Pydb) list 1 def test(): 2 -> print spam [EOF] (Pydb) quit >>>
At present if you are using ipython
, that captures the
exception and sys.last_traceback
will not be defined.
If you have a traceback stored say in variable t
, instead of
pydb.pm()
above, use pydb.post_mortem(t)
.
See About this document... for information on suggesting changes.