python:使用faulthandler有不利之处吗?

时间:2014-02-12 16:34:12

标签: python

Python 3.3包含一个名为faulthandler的模块,如果发生段错误,它会显示有用的回溯信息。 (对于3.3之前的Python版本,模块可以是obtained from PyPI。)

默认情况下,模块未启用。它启用如下:

import faulthandler
faulthandler.enable()

此功能非常有用。是否有任何特殊原因未默认启用?它对性能有任何负面影响吗?

1 个答案:

答案 0 :(得分:20)

  

此功能非常有用。是不是有任何特殊原因   默认启用?它对性能有任何负面影响吗?

原因是faulthandler记得stderr的文件描述符,通常是fd 2.问题是fd 2可能变成别的东西,比如socket,pipe,一个重要文件等。没有可靠的方法来检测这种情况,因此在Python中默认不启用faulthandler更安全。

faulthandler在几乎所有情况下都是安全的,除非更换了由faulthandler存储的文件描述符。问题也在文档中描述: https://docs.python.org/dev/library/faulthandler.html#issue-with-file-descriptors

注意:我写过faulthandler。