POSIX线程和SIGSEGV

时间:2010-12-15 15:14:20

标签: pthreads sigsegv

我有一个10+线程的系统。我有一个信号处理程序来捕获SIGSEGV。如果一个线程生成SIGSEGV,该信号是发送到所有线程,还是只发送到生成信号的线程?

1 个答案:

答案 0 :(得分:7)

SIGSEGV是同步信号。它将被传递给导致无效内存访问的线程。来自signal(7)

可以为整个过程生成(并因此待决)信号(例如,        当使用kill(2))或特定线程(例如,某些信号,例如,        作为执行特定结果而生成的SIGSEGVSIGFPE        机器语言指令是线程指向的,以及针对a的信号        使用pthread_kill(3))的特定线程。过程导向信号可以是        传递给当前没有信号的任何一个线程        受阻。如果多个线程的信号未被阻塞,那么        内核选择一个任意线程来传递信号。