【问题标题】:Get stack backtrace of a running process获取正在运行的进程的堆栈回溯
【发布时间】:2010-01-06 10:44:59
【问题描述】:

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

我正在寻找一个跨 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 的可靠方法吗?

【问题讨论】:

  • Linux 上还有gstack 实用程序,它通过调用与上述类似的gdb 来工作。

标签: c++ c unix stack-trace


【解决方案1】:

你需要 libunwind

【讨论】:

  • 谢谢! libunwind-ptrace 看起来很有前途。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
相关资源
最近更新 更多