[英]Start pdb on exception in Tornado's ioloop
在獨立的Python程序中執行此操作通常很有用:
def excepthook(typ, value, tb):
traceback.print_exception(typ, value, tb)
pdb.pm()
...
if log.getEffectiveLevel() == logging.DEBUG:
sys.excepthook = excepthook
(即,如果發生未捕獲的異常,則程序將進入pdb
驗屍模式)
但這不適用於Tornado ioloop bc,似乎ioloop會捕獲未捕獲的異常並打印或記錄它們。 如果我在掛鈎上安裝了該程序,則僅在按Ctrl-C時該程序才進入事后檢驗模式,這有點晚了。 :-)
有沒有辦法在沒有猴子打龍卷風的情況下實現這一目標?
您可以繼承龍卷風的IOLoop並覆蓋handle_callback_exception。 參見http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.handle_callback_exception
我想這與猴子補丁並沒有太大的區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.