您可以使用traceback.print_exc打印异常跟踪。然后使用sys.exc_info提取回溯,最后使用该回溯调用pdb.post_mortem
import pdb, traceback, sysdef bombs(): a = [] print a[0]if __name__ == '__main__': try: bombs() except: extype, value, tb = sys.exc_info() traceback.print_exc() pdb.post_mortem(tb)
如果您要使用产生异常的框架的局部语言使用pre.interact启动交互式命令行,则可以执行
import traceback, sys, predef bombs(): a = [] print a[0]if __name__ == '__main__': try: bombs() except: type, value, tb = sys.exc_info() traceback.print_exc() last_frame = lambda tb=tb: last_frame(tb.tb_next) if tb.tb_next else tb frame = last_frame().tb_frame ns = dict(frame.f_globals) ns.update(frame.f_locals) pre.interact(local=ns)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)