2

このプロジェクトでは、Python 3 must be compiled without sigaltstack enabled. sigaltstack を有効にせずに Python 3 をコンパイルするにはどうすればよいでしょうか?

4

1 に答える 1

3

必要なオプションで実行./configureします。すると、、、 ...pyconfig.hに加えて得られます。Makefileconfig.log

を編集pyconfig.h: を含む行を見つけ、その行をHAVE_SIGALTSTACK削除またはコメントアウトします。

#define HAVE_SIGALTSTACK 1

次に、、、make...


確認方法:faulthandlerモジュールに_stack_overflow機能があるか確認してください。持つべきではありません。

>>> import faulthandler
>>> print(hasattr(faulthandler, '_stack_overflow'))
False

faulthandlerモジュールのドキュメントによると:

障害ハンドラーは、Apport や Windows 障害ハンドラーなどのシステム障害ハンドラーと互換性があります。sigaltstack() 関数が使用可能な場合、モジュールはシグナル ハンドラに代替スタックを使用します。これにより、スタック オーバーフローでもトレースバックをダンプできます。

于 2013-10-23T16:10:09.863 に答える