2010-01-06 13 views
6

Próbuję uzyskać śledzenie stosu uruchomionego procesu (znane są PID i ścieżka binarna) z innego programu. Program, o którym mowa, jest napisany w C++ i skompilowany za pomocą g ++ z symbolami debugowania gdb.Uzyskanie wyniku śledzenia stosu uruchomionego procesu

Szukam C lub C++ biblioteki, który działa na Linux, HP-UX i Solaris, który wytwarza moc podobną do wyjścia wywołanie popen() z mniej więcej tak:

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

I znalazłem lsstack (http://sourceforge.net/projects/lsstack/), który jest tylko Linuxem i zna program pstack dla Solaris.

Czy ktoś wie o niezawodnym sposobie wykonywania tego krzyżowego systemu Unix/POSIX?

+0

Istnieje również narzędzie 'gstack' na Linuksie, które działa poprzez wywoływanie gdb podobne do powyższego. – mark4o

Odpowiedz

2

Potrzebujesz libunwind

+0

Dzięki! libunwind-ptrace wygląda obiecująco. – jsc

Powiązane problemy