Загружаем изображение…
Слышали, что Python может сам напечатать стек при креше!
Есть встроенный механизм, который автоматически печатает traceback при ошибках, включая segfault, stack overflow и abort:
faulthandler.enable()По умолчанию он пишет стек в stderr в момент падения интерпретатора, то есть вы получаете информацию после креша, а не до него:
# работает даже при segmentation faultМожно принудительно напечатать стек всех потоков в любой момент выполнения:
faulthandler.dump_traceback(all_threads=True)А если нужно сохранять стек в файл (например, на сервере без доступа к stdout), вывод легко перенаправляется:
faulthandler.enable(open("crash.log", "w"))Этот модуль используется для отладки CPython, встроен в стандартную библиотеку и может очень выручить.
Python Ready | #совет