c - 如何找到哪个线程被卡住了

标签 c linux multithreading

我正在使用线程,但我的一个(或多个)线程被卡住并且永远不会结束。问题是我找不到哪一个。

所以我想知道是否有办法找到它的 ID , 与 PS 中显示的 ID 相同Linux 命令。如果没有办法,我怎么能找到哪个线程被卡住了?

Obs:已经检查了 pthread_self()这不是我要找的。

最佳答案

使用 GDB 调试器我们可以找出哪个线程处于阻塞状态。

  1. 首先尝试使用调试符号编译您的代码。
  2. gdb your_file_executable
  3. 放置一些断点(你会知道在哪里放置断点)
  4. 信息线程

"info threads"将提供有关生成/运行的线程的信息。 w

关于c - 如何找到哪个线程被卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37777776/

相关文章:

带有颜色的 Linux IO 重定向

linux - 邮件被发送到本地域而不是远程域

用于计划任务的 C++ 多线程任务队列

vb.net - Visual Basic 2008 - 不同线程上的新窗体

创建特定于时间的线程

c - 无法将字符串存储在结构中

c - 将 realloc 用于存储从文件读取的 int 的数组时出错

c# - Gridview 中使用索引进行编辑

c - 为什么 fprintf() 不写入文件?

linux - 提取 cpio.gz 里面有两个文件