在坠机中显示蟒蛇的踪迹
faulthandler的Python项目详细描述
sigsegv、sigfpe、sigabt、sigbus和sigill信号的故障处理程序:显示 python回溯并还原上一个处理程序。分配候补人员 此处理程序的堆栈,如果sigaltstack()可用,则可以 堆栈上的内存,即使堆栈溢出(在Windows上不可用)。
导入模块并调用fault handler.enable()以启用故障处理程序。
或者,可以将pythonfaulthandler环境变量设置为 非空值。
在灾难性的情况下调用错误处理程序,因此它只能使用 信号安全函数(例如,它不在堆上分配内存)。这就是为什么 回溯是有限的:它只支持ascii编码(使用 反斜杠替换非ascii字符的错误处理程序)并限制每个字符串 到100个字符,不会在回溯中打印源代码(仅 文件名、函数名和行号)限制为100帧 100线。
默认情况下,python回溯将写入标准错误流。开始 在终端中运行图形应用程序,并在前台运行服务器 查看回溯,或将文件传递给faulthandler.enable()。
faulthandler在c中使用信号处理程序实现,以便能够转储 在崩溃或python被阻止时(例如死锁)进行回溯。
这个模块是cpython 2.7的后台端口。faulthandler是cpython的一部分 cpython 3.3之后的标准库:faulthandler。对皮比来说, 自pypy 5.5以来,faulthandler是内置的:使用pypy -X faulthandler。
网址: https://faulthandler.readthedocs.io/