【问题标题】:POSIX Threads and SIGSEGVPOSIX 线程和 SIGSEGV
【发布时间】:2011-05-25 23:42:26
【问题描述】:

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

【问题讨论】:

    标签: pthreads segmentation-fault


    【解决方案1】:

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

    可能会为整个进程(例如, 当使用kill(2) 发送时或针对特定线程(例如,某些信号,例如 如SIGSEGVSIGFPE,作为执行特定的结果而生成 机器语言指令是线程导向的,针对 使用pthread_kill(3) 的特定线程)。过程导向的信号可能是 传递给当前没有信号的任何一个线程 被阻止。如果多个线程的信号被解除阻塞,则 内核选择一个任意线程来传递信号。

    【讨论】:

    • 谢谢。 MacOS X 信号文档中没有这种措辞。
    猜你喜欢
    • 2011-02-04
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多