Strace kullanarak çocuk süreç nasıl izlenir?


104

Ben kullanılan stracebir süreç kısaca eklemek için. İşlem 90 iş parçacığı oluşturdu. Sorunlu iş parçacığını bulduğumda, sıkıcı bir şekilde ana iş parçacığını, sonra büyük ebeveyn iş parçacığını ve böylece kök sürecine kadar tüm yolu aramak zorunda kaldım.

Hangi iş parçacığının başka bir iş parçacığını oluşturduğunu hızlı bir şekilde anlamak için bir numara veya araç var mı? Ya da daha iyisi, iplik kreasyonlarının ağacını yazdırın pstree?


@JeRog cevabının kabul edilmesi gerekiyor gibi görünüyor.
jww

Yanıtlar:


119

strace -fçocuk süreci izlemek için bu fork()ed.


19

Kolay bir yol göremiyorum:

Birden çok dosya (pid başına bir) üretmek için -ffseçeneği ile kullanabilirsiniz -o filename.

Örneğin:

strace -o process_dump -ff ./executable
grep clone process_dump*

bu, hangi ebeveynin neyi yarattığını görmenize yardımcı olur. Belki bu size yardımcı olabilir - en azından geriye doğru arama yapabilirsiniz.


18

Adlı bir perl betiği var strace-graph. İşte github'dan bir versiyon . Derleyicilerin crosstool-ng sürümleriyle paketlenmiştir . Benim için çalışıyor çapraz platform bile kullandı.

ARM Linux kutusu.

$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133

X86_64 Linux kutusu.

$ ./strace-graph /srv/tftp/app.trc 
 (anon)
  +-- touch /tmp/ppp.sleep
  +-- killall -HUP pppd
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 70%
  +-- amixer set Speaker 50%
  +-- amixer set Speaker 70%
  `-- amixer set Speaker 50%

Çıktı, ana izleme günlüğünde gezinmeye yardımcı olmak için kullanılabilir.


1
çok güzel, bu neredeyse tam olarak en az birkaç gündür istediğim bir şey. şaşırtıcı bir şekilde, bunu / usr / share / doc / strace / samples / içinde bile görebiliyorum.
mykhal

0

strace@Stackmate'in önerdiği gibi, tek bir işlem için trafiği yakalamak için kullanabilirsiniz .

strace -f -e trace=network -s 10000 -p <PID>;

veya bir dosyaya çıktı.

strace -f -e trace=network -s 10000 -o dumpfile -p <PID>

-ftüm çatallı işlemler -siçin, dizgi boyutunun yazdırılması ve -oçıktıyı bir dosyaya dökmesi için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.