簡體   English   中英

在龍卷風的ioloop中異常啟動pdb

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM