问题标签 [pstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1273 浏览

linux - 使用 pstack 打印所有线程 stacktrace

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

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

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

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

谢谢


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

0 投票
1 回答
107 浏览

solaris-10 - 显示进程的所有堆栈历史记录

如何在 Solaris 上显示进程的所有函数调用?

dbx 和 pstack 打印调用堆栈。我想要的是进程调用的所有函数的列表。换句话说,进程的几个 pstacks 的输出。

0 投票
0 回答
910 浏览

linux - 如何通过内存地址解析函数名?

虽然Linux没有提供pstackSolarisRedHat提供了一个脚本可以做同样的事情:

在中执行脚本Suse

我的问题是如何从地址解析函数名?比如0x00007fe4ab73eb36。我可能通过安装debug-info包知道,但是如何知道安装哪些包?

更新:
根据 Mark Plotnick 的评论,我使用以下命令来获取debuginfo缺少哪些包:

安装完所有需要debuginfo的包后,符号就可以解决了:

但是 " objdump -t /proc/7286/exe | grep main" 什么也没输出:

0 投票
0 回答
323 浏览

java - pstack 解决了 JVM 冻结问题

我面临一个奇怪的问题解决方案:在运行应用程序服务器时,我们的 JVM(1.6)不时冻结(可能是因为阻塞线程或垃圾收集)。如果我们运行 pstack 命令,问题就解决了。

有人能解释一下 pstack 如何解决这个冻结问题吗?我想了解“仅”读取堆栈跟踪的命令如何能够解除阻塞/解冻 JVM 以了解有关冻结的更多信息。

0 投票
1 回答
412 浏览

linux - 为什么 pstack 比 gdb 快得多,只需附加、保存堆栈和退出?

我有一个脚本,它使用如下命令文件运行 gdb:

为什么 pstack 比这个脚本快得多?我能以某种方式用 gdb 实现这种速度吗?

编辑:区别在于 gdb 版本。我使用了 gdb-7.10,转储堆栈跟踪大约需要 14 秒。使用 pstack 使用的 gdb 7.0.1,需要 2 秒。-readnever大部分时间都用 gdb-7.10 从我们的库中加载符号,我在新版本中找不到合适的选项。

0 投票
1 回答
486 浏览

debugging - 如何在 gdb-7.10 中禁用符号加载?

在旧版本的 gdb 中,有一个选项 ,-readnever可以抑制符号加载。我可以使用 gdb-7.10 获得相同的结果吗?这仅用于堆栈跟踪,而不是用于调试。

0 投票
2 回答
1675 浏览

linux - 为什么“pstack”只打印一个线程的内容?

OS的是RHEL 7,我运行一个简单的Go程序:

在其运行期间,我检查进程的线程数:

使用pstack附带的命令时RHEL,它只打印一个线程的堆栈:

为什么pstack只打印一个线程的内容?

PS:pstack脚本在这里:

0 投票
1 回答
165 浏览

erlang - erlang中的pstack等价物

当 Erlang 系统挂起时,我想知道系统在此期间在做什么。对于 ac/c++ 程序,我可以轻松地运行 pstack,但是我在 Erlang 中没有找到用于此目的的方便工具。

  1. Erlang 中的 pstack 等价物是什么?

  2. 实际上我想检查以下进程的运行堆栈跟踪。

    我启动了一个新的 Erlang shell 并启动了 webtool 并检查了 appmon 但是我找不到上面的应用程序。什么可能导致这种情况?

谢谢

0 投票
1 回答
1510 浏览

linux - 如何在 Linux 中查看挂起进程中特定线程的堆栈跟踪

我有一个在 Linux 下运行时卡住的多线程进程。但我没有多线程版本pstack(使用 别名gstack)。因此,gstack <pid>没有为我提供任何东西。我如何(a)附加gdb到已经运行的进程(b)获取各个线程的堆栈跟踪(c)从threadid(如果知道)知道正在运行的进程的threadid(d)我如何查看堆栈跟踪/调用堆栈卡住进程下的正在运行的线程?

0 投票
1 回答
981 浏览

stack-trace - pstack 不打印堆栈输出

我正在运行 pstack 来查找在两台机器(都是 RHEL)上运行的应用程序的函数堆栈

在我的一台机器上,它按预期工作

但是在其他机器中它只是打印线程的名称

我一直在寻找解决此问题的方法,但没有取得太大成功。我发现的唯一重要信息在这里

要转储线程信息,您必须使用 LinuxThreads libpthread.so 库的调试感知版本。
(要检查,请在 pthreads 库上运行 nm(1),并
确保定义了符号“__pthread_threads_debug”。)较新的 NPTL libpthread.so 库不支持线程。

在两台机器上对 /lib64/libpthread.so.0 执行 nm 时,我发现两者都有“__pthread_debug”。

将感谢帮助。