我正在尝试从另一个程序获取正在运行的进程(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 的可靠方法吗?
最佳答案
你需要libunwind
关于c++ - 获取正在运行的进程的堆栈回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2012303/