Linux |
CentOS 4.8 |
|
profil(2) |
profil − Suivre le profil d’exécution. |
#include <unistd.h> int profil(char *buf, int bufsiz, int offset, int scale); |
Sous Linux 2.0, profil n’est pas implémenté dans le noyau, à la place c’est la bibliothèque DLL 4.4.1 qui en fournit une implémentation pour l’utilisateur. Buf doit pointer sur une zone de mémoire contenant bufsiz octets. Toutes les 10 millisecondes d’exécution, le compteur d’instruction (PC) de l’utilisateur est examiné : offset en est soustrait, et le résultat est multiplié par scale. Si cette adresse est dans buf, alors le mot vers laquelle elle pointe est incrémenté. Si scale est inférieure à 2, ou si bufsiz est nul, le suivi est désactivé. |
profil() renvoie toujours zéro. |
profil ne peut pas être utilisé par un programme qui emploie simultanément des compteur ITIMER_PROF. L’appel de profil avec une zone buf invalide produira un fichier d’image mémoire core. Un véritable suivi intégré au noyau fournit des résultats bien plus précis. |
Similaire à un appel SVr4 (mais pas POSIX.1). Néanmoins, dans la version SVr4, le premier argument est un short *, permettant des valeurs de compteur plus importantes. |
gprof(1), setitimer(2), signal(2), sigaction(2) |
Christophe Blaess, 1997. |
profil(2) |