我正在尝试从另一个程序获取正在运行的进程(已知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的可靠方式?
答案 0 :(得分:2)
你需要libunwind