Frage

ich gebrauchte strace ein Verfahren kurz zu befestigen. Das Verfahren geschaffen 90 Fäden. Als ich den säumigen Thread gefunden, hatte ich für den übergeordneten Thread tediously suchen, dann der Großeltern Faden, und so weiter die ganzen Weg zu dem Wurzelprozess.

Gibt es einen Trick oder ein Werkzeug, um schnell herauszufinden, welche Thread eine andere geschaffen? Oder noch besser, drucken Sie den Baum der Faden Kreationen wie pstree?

War es hilfreich?

Lösung

strace -f, um Spuren Kind Prozess, der fork()ed wird.

Andere Tipps

Es ist ein Perl-Skript namens strace-graph. Hier ist eine Version von Github . Es ist mit cross-ng Versionen von Compilern verpackt. Es funktioniert für mich selbst verwendet Cross-Plattform.

ARM Linux-Box.

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

X86_64 Linux-Box.

$ ./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%

Der Ausgang kann das Haupt Trace-Protokoll als Hilfe zur Navigation verwendet werden.

Ich kann nicht eine einfache Möglichkeit sehen:

Sie könnten die -ff Option mit -o filename verwenden, um mehrere Dateien (eine pro pid) zu produzieren.

Beispiel:

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

das würde helfen Sie sehen, welche Eltern, was erstellt. Vielleicht haben Sie das helfen würde -. Zumindest dann könnten Sie suchen nach hinten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top