0

我正在尝试使用 pstack 打印特定进程的所有线程的堆栈跟踪,但我只得到主线程。

根据 pstack 描述:
pstack - 打印正在运行的进程的堆栈跟踪
...
如果进程是线程组的一部分,那么 pstack 将为组中的每个线程打印出堆栈跟踪。

我使用 gdb 附加到进程并验证有更多线程。我使用其中一个线程 id 运行 pstack,并得到了请求的结果。
[我也使用了 ps -j 并且看到了具有相同组 id 的其他进程,但我认为它不相关]

我阅读了相关的 pstack 问题,但没有看到任何可以帮助我的东西。也搜索了谷歌,但没有看到有人问这个问题。

谢谢


我没有注意到“要转储线程信息,您必须使用 LinuxThreads libpthread.so 库的调试感知版本。”

4

1 回答 1

1

问题出在 libpthread.so 库版本中。根据http://linuxcommand.org/man_pages/pstack1.html:“要转储线程信息,您必须使用 LinuxThreads libpthread.so 库的调试感知版本。”

由于我无法替换库,因此我将分别查找线程 id 并在每个上使用 pstack。希望它会帮助某人。

于 2014-11-04T07:16:35.730 回答