在另一个信号的处理程序内安装信号处理程序,是否可能?

时间:2015-01-19 19:40:53

标签: c linux unix signals

我必须编写堆栈爬虫/追溯代码。我正在安装自己的sigsegv处理程序。只要我没有从另一个处理程序调用我的回溯,一切正常。

更确切地说,如果我的回溯是从另一个处理程序(比如说SIGALRM)调用的,那个处理程序会阻塞所有其他信号,那么我的sigsegv处理程序就不会被调用。我知道这是因为前一个处理程序阻止了所有其他信号(如果我错了请纠正我)。我想明白,如果我的sigsegv处理程序甚至会被安装?因为即使没有调用我的处理程序,也应该为该进程设置sigsegv的挂起位,并且一旦当前处理程序(对于SIGALRM)完成至少那个时间,我的处理程序应该被调用。

另外,有没有办法可以确保在这种情况下捕获SIGSEGV,其中从另一个阻止该信号的处理程序调用回溯。

感谢。

0 个答案:

没有答案