获取正在运行的进程的堆栈回溯

发布于 2024-08-16 13:31:55 字数 497 浏览 3 评论 0原文

我试图从另一个程序获取正在运行的进程的堆栈回溯(PID 和二进制路径已知)。该程序是用 C++ 编写的,并使用 g++ 和 gdb 调试符号进行编译。

我正在寻找一个可以在 Linux、HP-UX 和 Solaris 上工作的 C 或 C++ 库,它会产生类似于调用 popen() 的输出,如下所示:

gdb -batch -x /dev/stdin <BINARY> <PID> << EOF
thread apply all bt
EOF

我找到了 lsstack ( http://sourceforge.net/projects/lsstack/ ),仅适用于 Linux,并且了解 Solaris 的 pstack 程序。

有谁知道跨 Unix / POSIX 执行此操作的可靠方法吗?

I'm trying to get the stack backtrace of a running process (PID and binary path are known) from another program. The program in question is written in C++ and compiled with g++ with gdb debugging symbols.

I'm looking for a C or C++ library that works across Linux, HP-UX and Solaris that produces an output similar to the output of calling popen() with something like this:

gdb -batch -x /dev/stdin <BINARY> <PID> << EOF
thread apply all bt
EOF

I have found lsstack ( http://sourceforge.net/projects/lsstack/ ), which is Linux only and know the pstack program for Solaris.

Does anyone know of a reliable way of doing this cross Unix / POSIX?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫烠⑼条掵仅有一顆心 2024-08-23 13:31:55

你需要libunwind

You need libunwind

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文