我想使用pthread_kill接口从主线程发送信号(SIGUSR1)到一个子线程,但它给出了分段错误。之前我使用的是2.6.20内核版本,使用的是gcc 4.2.1eglbc2.5multilib powerpc tolchain。在这一点上,它正在正常工作。现在我使用的是2.6.34内核版本,使用的是gcc 4.1.2ELIBC 2.5.78nptl(本地POSIX线程库)。在这里,我得到了分段错误。
我还将pthread_kill()的手册页阅读为“POSIX说明,试图使用生命周期已结束的线程ID会产生未定义的行为,而试图在调用pthread_kill()时使用无效的线程ID可能会导致分段错误。”
我认为线程id初始化应该是正确的,否则我找不到其他东西。在这个问题上,有人能帮上忙吗?
发布于 2018-08-10 13:41:51
有一些可能的原因:
第一个可以通过打印已创建线程的ID和传递给pthread_kill()的ID来验证。
对于下一步,您必须找出线程何时结束。
最后,这样的错误很难找到,也没有一般的建议。
https://stackoverflow.com/questions/51779613
复制相似问题