|
|
1
0
回答我自己的问题: 问题是要分配的堆栈太小。所以它实际上是一个堆栈溢出。sendsig()函数正在准备将上下文结构从内核空间复制到用户空间。函数的作用是:检查指定地址是否有足够的空间。 Ruby1.9.1-p0代码使用pthread_Stack_Min为创建的任何线程分配堆栈。根据HP-UX文档,在Itanium上这是256KB,但是当我检查头文件时,它只有4KB。来自useracc()的错误消息表明它正在尝试复制20KB。 因此,如果一个线程接收到一个信号,它就没有足够的空间来接收其堆栈上的信号上下文。 |