urllib3段错误(核心转储)

时间:2016-08-14 01:20:03

标签: python linux segmentation-fault urllib3

我正在为一个python程序获得一个段错误(“非法操作(核心转储)”),这个程序我每周都没有错过多年。我也在Nitrous上运行Ubuntu。我记得在使用C语言进行编码时处理这些yonks,我最近没有必要处理它们。

导入库urllib3似乎导致了问题。有谁知道修复?

此外,有人可以建议或链接到将来诊断这些问题的最佳工作流程吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

“非法操作”

通常表示您正在为功能较弱的处理器(例如Haswell)运行为更强大的处理器(例如Ivy Bridge)而编译的代码(例如AVX)。

  

导入库urllib3似乎导致了问题。

在我的Ubuntu计算机上,localhost:10080加载import urllib3libssl.so.1.0.0libcrypto.so.1.0.0。这些加密库很可能使用处理器可能不支持的AVX2,{{3}}等指令进行编译。

  

诊断这些问题的最佳工作流程

您的第一步应该是找出导致_ssl.x86_64-linux-gnu.so的指令。为此,请运行:

SIGILL

上面的最后两个命令应该为您提供导致gdb python (gdb) run >>> import urllib3 # do whatever is necessary to reproduce SIGILL (gdb) x/i $pc (gdb) info sym $pc 的指令,以及使用该指令的库。一旦您知道该指令是什么,您就可以验证您的处理器是否支持它,并联系“有罪”库的分发者以获得不同的编译(一个不使用CPU不支持的指令)。 / p>