gpt4 book ai didi

linux - pthread_kill() 在使用 nptl 库时出现段错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:29 28 4
gpt4 key购买 nike

我想使用 pthread_kill api 从主线程向子线程发送信号 (SIGUSR1),但它给出了段错误。以前我使用 2.6.20 内核版本和 gcc 4.2.1 eglbc 2.5 multilib powerpc tolchain。那时它工作正常。现在我正在使用 2.6.34 内核版本和 gcc 4.1.2 elibc 2.5.78 nptl( native posix 线程库)。我在这里遇到段错误。

而且我还阅读了 pthread_kill() 的手册页,因为“POSIX 表示尝试使用生命周期已结束的线程 ID 会产生未定义的行为,并尝试在调用 pthread_kill() 时使用无效的线程 ID例如,可能会导致段错误。”

我认为线程 ID 初始化应该是正确的,或者其他我找不到的东西。有人能帮忙解决这个问题吗?

最佳答案

有一些可能的原因:

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

首先,您可以通过打印已创建线程的 ID 和传递给 pthread_kill() 的 ID 来验证

接下来,您必须找出线程何时结束。

最后,这种错误很难发现,也没有一般性的建议。

关于linux - pthread_kill() 在使用 nptl 库时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51779613/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com