2
我与线程和我的线程(S)的一个(或多个)的工作是/是卡住,永远不会结束。问题是我找不到哪一个。如何找到哪个线程被卡
所以我想知道是否有一种方法可以找到它的ID
,与Linux命令PS
中显示的ID相同。如果没有办法,我怎么能找到哪个线卡?
观测数据:已经检查了pthread_self()
,它是不是我要找的。
我与线程和我的线程(S)的一个(或多个)的工作是/是卡住,永远不会结束。问题是我找不到哪一个。如何找到哪个线程被卡
所以我想知道是否有一种方法可以找到它的ID
,与Linux命令PS
中显示的ID相同。如果没有办法,我怎么能找到哪个线卡?
观测数据:已经检查了pthread_self()
,它是不是我要找的。
使用GDB调试器,我们可以找出哪些线程处于阻塞状态。
gdb your_file_executable
info threads
“信息线”将给出有关这催生/运行的线程的信息。 w^
另一个我觉得有用的命令是'thread apply all bt' - 它打印每个线程的堆栈跟踪,让您可以轻松地找到卡住的一个。 –
'ps'也不是没有特殊的开关上市线程。你确定你想要线程而不是进程吗? –
请参阅以下信息:http://stackoverflow.com/help/mcve – Elyasin
@EugeneSh。我想是这样的......当我用字符'&'编译时,能够给出'PS'命令,并且我可以看到我的可执行文件在那里列出了一个pid。我只是想知道是否有办法找到哪个线程被卡住了...... – PlayHardGoPro