Python Glossary English

Python 3.3+faulthandlerфункция

faulthandler.enable()

обработчик сбоев

Включает вывод трассировки Python при аварийном падении процесса: segfault, SIGABRT, SIGFPE и т. п.

Синтаксис

faulthandler.enable(file=sys.stderr, all_threads=True, c_stack=True)

Ловит то, чего не видит try/except: падение внутри C-расширения, где обычной трассировки нет вовсе. file должен иметь настоящий файловый дескриптор — с io.StringIO() будет UnsupportedOperation — и оставаться открытым, пока обработчик включён. Включить без правки кода можно ключом -X faulthandler или переменной PYTHONFAULTHANDLER, а режим -X dev включает его сам.

Примеры

import faulthandler, io
try:
    faulthandler.enable(file=io.StringIO())
except io.UnsupportedOperation as e:
    print(e)  # → fileno
with open('crash.log', 'w') as log:
    faulthandler.enable(file=log)
    print(faulthandler.is_enabled())  # → True
    faulthandler.disable()

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности