【发布时间】: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