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

时间:2010-01-06 10:44:59

标签: c++ c unix stack-trace

我正在尝试从另一个程序获取正在运行的进程(已知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的可靠方式?

1 个答案:

答案 0 :(得分:2)

你需要libunwind