在龙卷风的ioloop开始异常PDB(Start pdb on exception in Torna

2019-10-19 02:55发布

但是这是要做到这一点在独立Python程序:

def excepthook(typ, value, tb):
    traceback.print_exception(typ, value, tb)
    pdb.pm()

...
if log.getEffectiveLevel() == logging.DEBUG:
    sys.excepthook = excepthook

(即如果uncatched发生异常时,程序被投进pdb验尸模式)

但是,这并不与龙卷风ioloop BC工作似乎ioloop捕捉uncatched异常并打印或注销它们。 如果我上面安装钩子,该方案仅在按下Ctrl-C这是一种后期进入验尸模式。 :-)

有没有实现这一点没有猴子修补龙卷风的一种方式?

Answer 1:

你可以继承龙卷风IOLoop并覆盖handle_callback_exception。 见http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.handle_callback_exception

我想这是不是从猴子修补太大的不同,但...



文章来源: Start pdb on exception in Tornado's ioloop