43.2. Tracer les appels de fonction avec SystemTap
Vous pouvez utiliser le script para-callgraph.stp SystemTap pour tracer les appels de fonction et les retours de fonction.
Conditions préalables
- Vous avez installé SystemTap comme décrit dans la section Installation de Systemtap.
Procédure
- Exécutez le script para-callgraph.stp.
stap --example para-callgraph.stp 'argument1' 'argument2'
# stap --example para-callgraph.stp 'argument1' 'argument2'
Le script para-callgraph.stp prend deux arguments en ligne de commande :
- Le nom de la (des) fonction(s) dont vous souhaitez suivre l'entrée ou la sortie.
- Une fonction de déclenchement optionnelle, qui active ou désactive le traçage pour chaque thread. Le suivi de chaque thread se poursuit tant que la fonction de déclenchement n'est pas terminée.
Prenons l'exemple suivant :
stap -wv --example para-callgraph.stp 'kernel.function("*@fs/proc.c*")' 'kernel.function("vfs_read")' -c "cat /proc/sys/vm/* || true"
# stap -wv --example para-callgraph.stp 'kernel.function("*@fs/proc.c*")' 'kernel.function("vfs_read")' -c "cat /proc/sys/vm/* || true"
où :
- -w : Supprime les avertissements.
- -v : Rend visible la sortie du noyau de départ.
-
-c command: indique à SystemTap de compter les appels de fonctions pendant l'exécution d'une commande, dans cet exemple
/bin/true.
Le résultat devrait ressembler à ce qui suit :