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

6
我正在尝试从另一个程序获取正在运行的进程的堆栈回溯(已知PID和二进制路径)。所涉及的程序是用带有gdb调试符号的g++编写的C ++。
我正在寻找一个在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来工作。 - mark4o
1个回答

2
你需要使用libunwind。

谢谢!libunwind-ptrace看起来非常有前途。 - jsc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接