Gibt es eine Entsprechung zu den Funktionen -T
und der -U
Option des truss
Solaris-Dienstprogramms unter Linux?
Diese sollen einen Systemaufruf ( -T
) oder eine Bibliotheksfunktion ( -U
) angeben, die beim Aufrufen durch die verfolgte Anwendung zum Anhalten führen würde.
Andernfalls möchte ich, dass jeder Prozess, der von einer verfolgten Anwendung gestartet wird, gestoppt wird (als würde er von SIGSTOP abgebrochen), sobald ein bestimmter Systemaufruf oder ein bestimmter Funktionsaufruf einer gemeinsam genutzten Bibliothek ausgeführt wird.
strace
und ltrace
unter Linux bieten sie einen Großteil der Funktionen von Solaris truss
, aber sie scheinen dies nicht zu tun.
Zum Beispiel:
truss -f -T open cmd
Wäre so strace -f cmd
, als würde der Prozess, der ausgeführt wird, cmd
oder einer seiner Nachkommen einen open
Systemaufruf ausführen , sofort gestoppt (und ich kann ihn später nach Belieben fortsetzen).
In einigen Fällen könnte ich gdb
‚s catch syscall
, aber ich war auf der Suche nach einer Lösung , die Gabeln bequem folgen kann und weiterhin für alle die gegabelten Prozesse tun und behalten sie auch nach tun execve
s.
Ich erinnere mich an ein Hilfsprogramm, das dieselbe Funktionalität bietet, sogar an ein (oder mehrere) Hilfsprogramm (e) für Einzelschrittanwendungen zwischen einigen Ereignissen eines solchen Systemaufrufs, aber mein Gedächtnis versagt mir, ich kann nicht einmal sicher sein das war unter Linux.
follow-exec-mode
) folgen kann , damit experimentiere ich. Beantwortet die Frage nicht unbedingt, kann aber gut genug für das sein, was ich brauche.
truss
Manpage hinzugefügt .