Python 3.3+faulthandlerфункция
faulthandler.cancel_dump_traceback_later()
дамп по таймеру
Отменяет таймер, заведённый dump_traceback_later(): если код успел, дампа не будет.
Синтаксис
faulthandler.cancel_dump_traceback_later()
Ставьте её в finally: без отмены таймер сработает позже, уже в другом месте программы, и даст ложную тревогу — а с exit=True ещё и убьёт процесс. Таймер у модуля один, так что функция отменяет последний заведённый, аргументов у неё нет. Вызов без активного таймера безопасен.
Примеры
import faulthandler, time
with open('hang.txt', 'w') as f:
faulthandler.dump_traceback_later(0.1, file=f)
try:
total = sum(range(1000))
finally:
faulthandler.cancel_dump_traceback_later()
time.sleep(0.2)
print(repr(open('hang.txt').read())) # → ''
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности