This project表示Python 3 must be compiled without sigaltstack enabled.
那么在没有启用sigaltstack的情况下编译Python 3需要做什么?
答案 0 :(得分:3)
使用您想要的选项运行./configure
。然后,除pyconfig.h
,Makefile
,...之外,您还会获得 config.log
。
修改pyconfig.h
:找到包含HAVE_SIGALTSTACK
的行,删除或注释掉该行。
#define HAVE_SIGALTSTACK 1
然后,make
,...
如何确认:检查faulthandler
模块是否具有_stack_overflow
功能。它应该没有它。
>>> import faulthandler
>>> print(hasattr(faulthandler, '_stack_overflow'))
False
根据faulthandler
module documentation:
故障处理程序与Apport等系统故障处理程序兼容 或Windows错误处理程序。该模块使用替代堆栈 信号处理程序,如果sigaltstack()函数可用。这个 允许它甚至在堆栈溢出时转储回溯。