【问题标题】:using pstack to print all threads stacktrace使用 pstack 打印所有线程 stacktrace
【发布时间】:2014-10-30 13:40:10
【问题描述】:

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

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

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

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

谢谢


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

【问题讨论】:

  • 欢迎来到 Stack Overflow。这不是在这里提出问题的好方法。到目前为止,您是否尝试过任何方法来解决您的问题?首先展示你的努力,这样人们才能展示他们的努力。请先阅读FAQHow to Askhelp center
  • 问题已编辑。好点了吗?

标签: linux multithreading pstack


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-10-30
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    相关资源
    最近更新 更多