2016-08-14 6 views
1

私は、年齢の違反なしで毎週実行しているpythonプログラムのsegfault( "不正な操作(コアダンプ)")を取得しています。私もNitrousでUbuntuを実行しています。私は前にCでコーディングするときに、これらのヨークを扱っていることを思い出しました。そして、私は非常に最近彼らに対処する必要はありませんでした。urllib3 segfault(コアダンプされた)

ライブラリurllib3をインポートすると問題が発生しているようです。誰かが修正を知っていますか?

また、誰かがこれらの問題を診断するための最良のワークフローを今後アドバイスしたりリンクしたりできますか?

ありがとうございます!

+0

問題を実証するための、最小限の検証可能な完全な例を投稿してください(http://stackoverflow.com/help/mcve) –

答えて

0

「無効な操作」

この通常少ない可能なもの(例えばIvy Bridge)に(例えばHaswell)あなたがより可能なプロセッサのためにコンパイルされたコードを実行していることを意味します。

ライブラリurllib3をインポートすると問題が発生しているようです。私のUbuntuマシン、import urllib3負荷libssl.so.1.0.0libcrypto.so.1.0.0_ssl.x86_64-linux-gnu.so

。これらの暗号ライブラリは、ご使用のプロセッサがサポートしていないAVXAVX2などの命令でコンパイルされる可能性が非常に高いです。

最高のワークフローこれらの問題を診断するための

あなたの最初のステップは、SIGILLの原因となっている命令を見つけるためにする必要があります。これを行うには、実行します。上記の

gdb python 
(gdb) run 
>>> import urllib3 # do whatever is necessary to reproduce SIGILL 
(gdb) x/i $pc 
(gdb) info sym $pc 

最後の2つのコマンドはあなたにSIGILLを引き起こしている命令、及びその命令が使用されているライブラリを与える必要があります。その命令が何であるかを知ったら、プロセッサがそれをサポートしていないことを確認し、「有罪」ライブラリのディストリビューターに連絡して別のコンパイル(CPUでサポートされていない命令を使用しない)を取得します。

関連する問題