我正在尝试在 HP-UX 上编译 Ruby 1.9.1-p0。在对 ext/pty.c 进行小改动后,它编译成功,尽管有很多警告消息(大约 5K)。当我使用“make test”运行自测时,它会崩溃并且核心转储并出现以下错误:
发送信号:useracc 失败。0x9fffffffbf7dae00 0x00000000005000
由于写入信号上下文失败 - 可能的堆栈溢出,Pid 3044 被杀死。
非法指令
通过谷歌搜索这个问题,非法指令只是系统用来终止进程的信号,与问题无关。调用信号处理程序时重新建立上下文似乎存在问题。在 gdb 中启动核心并没有显示出特别深的堆栈,所以我认为“可能的堆栈溢出”也不正确。
gdb 堆栈回溯输出如下所示:
#0 0xc00000000033a990:0 in __ksleep+0x30 () from /usr/lib/hpux64/libc.so.1
#1 0xc0000000001280a0:0 in __mxn_sleep+0xae0 ()
from /usr/lib/hpux64/libpthread.so.1
#2 0xc0000000000c0f90:0 in <unknown_procedure> + 0xc50 ()
from /usr/lib/hpux64/libpthread.so.1
#3 0xc0000000000c1e30:0 in pthread_cond_timedwait+0x1d0 ()
from /usr/lib/hpux64/libpthread.so.1