Python 3.3包含一个名为的模块faulthandler,如果发生段错误,它会显示有用的回溯信息.(对于3.3之前的Python版本,可以从PyPI获取该模块.)
默认情况下不启用该模块.它启用如下:
import faulthandler
faulthandler.enable()
Run Code Online (Sandbox Code Playgroud)
此功能非常有用.是否有任何特殊原因未默认启用?它对性能有任何负面影响吗?
hay*_*ypo 24
此功能非常有用.是否有任何特殊原因未默认启用?它对性能有任何负面影响吗?
原因是faulthandler会记住stderr的文件描述符,通常是fd 2.问题是fd 2可能变成别的东西,比如socket,pipe,一个重要文件等.没有可靠的方法来检测这种情况,因此,在Python中默认不启用faulthandler更安全.
几乎在所有情况下,faulthandler都是安全的,除非更换了由faulthandler存储的文件描述符.问题也在doc:https : //docs.python.org/dev/library/faulthandler.html#issue-with-file-descriptors中描述
注意:我写了faulthandler.
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |