2010-01-06 22 views
6

Başka bir programdan çalışan bir işlemin (PID ve ikili yolu bilinir) yığın backtrace almaya çalışıyorum. Söz konusu program C++ ile yazılmıştır ve gdb hata ayıklama sembolleri ile g ++ ile derlenmiştir.Çalışan bir işlemin yığın backtrace alın

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

I:

Bir C veya C Linux, bu gibi bir şeyle) (popen çağıran çıkışına benzer bir çıktı üretir, HP-UX ve Solaris üzerinde çalışan ++ kütüphanesi arıyorum Sadece Linux olan ve Solaris için pstack programını bilen lsstack (http://sourceforge.net/projects/lsstack/) 'u bulduk.

Bu çaprazı yapmanın güvenilir bir yolunu bilen biri var mı Unix/POSIX?

+0

libunwind gerekir. – mark4o

cevap

2

Ayrıca yukarıda gdb benzer arayarak çalışır Linux üzerinde `gstack` yarar vardır

+0

Teşekkürler! libunwind-ptrace çok umut verici görünüyor. – jsc

İlgili konular