A colleague recently asked this: Is there a cleaner way to dump a trace/track of running a python script. With Pydb I made work-around with import pydb pydb.debugger(dbg_cmds=['bt', 'l', 's']*300 + ['c']) So now I have a dump of 300 steps with backtraces, so I can easily compare two executions of the same script to find where they diverged. I think it is a really nice feature.
pydb and pdb inherit from the cmd module which does allow pre- and post-command hooks. Neither pdb nor pydb make it easy to add one's own hook. However If there's something you want to run before stepping you can do that by monkey-patching Pdb.precmd: #################### snip import pydb def myprecmd(obj, debug_cmd): """Custom Hook method executed before issuing a debugger command.""" global _pydb_trace obj.do_list('') obj.do_where('10') # limit stack to at most 10 entries return obj.old_precmd(debug_cmd) # is always string 's' in example below _pydb_trace = pydb.Pdb() pydb.Pdb.old_precmd = pydb.Pdb.precmd pydb.Pdb.precmd = myprecmd pydb.debugger(dbg_cmds=['s'] * 30) # .... #################### I believe the same is applicable to pdb, although I haven't investigated. -- http://mail.python.org/mailman/listinfo/python-list