首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pthread_kill()在使用nptl库时出现分段错误

pthread_kill()在使用nptl库时出现分段错误
EN

Stack Overflow用户
提问于 2018-08-10 13:34:28
回答 1查看 165关注 0票数 1

我想使用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初始化应该是正确的,否则我找不到其他东西。在这个问题上,有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-10 13:41:51

有一些可能的原因:

  • 您传递的参数从来都不是有效的线程ID。
  • 参数是一个有效的线程ID,但线程已经损坏了一些常规内存。

第一个可以通过打印已创建线程的ID和传递给pthread_kill()的ID来验证。

对于下一步,您必须找出线程何时结束。

最后,这样的错误很难找到,也没有一般的建议。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51779613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档