Получить stack backtrace запущенного процесса

Я пытаюсь получить обратную трассировку стека запущенного процесса (известны PID и двоичный путь) из другой программы. Рассматриваемая программа написана на C++ и скомпилирована с g++ с символами отладки gdb.

Я ищу библиотеку C или C++, которая работает в Linux, HP-UX и Solaris, которая производит вывод, подобный выходу вызова popen () с чем-то вроде этого:

gdb -batch -x /dev/stdin <BINARY> <PID> << EOF
thread apply all bt
EOF

Я нашел lsstack ( http://sourceforge.net/projects/lsstack/), который является только Linux и знает программу pstack для Solaris.

кто-нибудь знает надежный способ сделать этот крест Unix / POSIX?

1 ответов


вам нужен libunwind