Existe-t-il un équivalent de ce que fait l' option -T
et -U
de l' truss
utilitaire Solaris sur Linux.
Il s'agit de spécifier un appel système ( -T
) ou une fonction de bibliothèque ( -U
) qui, une fois appelée par l'application tracée, entraînerait son arrêt.
Ou, dit le contraire, je voudrais que tout processus démarré par une application tracée soit arrêté (comme s'il était tué par SIGSTOP) dès qu'il effectue un appel système donné ou un appel de fonction de bibliothèque partagée donné.
strace
et ltrace
sous Linux fournissent une grande partie des fonctionnalités de Solaris truss
, mais ils ne semblent pas le faire.
Par exemple:
truss -f -T open cmd
Serait comme strace -f cmd
sauf que si le processus en cours d'exécution cmd
ou l'un de ses descendants fait un open
appel système, il serait arrêté immédiatement (et je peux le reprendre plus tard à ma convenance)
Dans certains cas, je pouvais utiliser gdb
des s catch syscall
, mais je cherchais une solution qui puisse facilement suivre les fourches et continuer à le faire pour tous les processus fourchus et continuer à le faire même après execve
s.
Je semble me rappeler un utilitaire donnant la même fonctionnalité, même une (ou des options à ce même utilitaire) pour des applications en une seule étape entre certaines occurrences de certains appels système à distance comme ça, mais ma mémoire me fait défaut, je ne peux même pas être sûr c'était sous Linux.
follow-exec-mode
), j'expérimente avec ça. Ne répond pas strictement à la question, mais peut être suffisant pour ce dont j'ai besoin.
truss
page de manuel Solaris .