PROFIL(2)

BEZEICHNUNG
profil - führt ein Zeitprofil aus

ÜBERSICHT
#include <unistd.h>

int profil(char *buf, int bufsiz, int offset, int scale);

BESCHREIBUNG
Unter Linux 0.99.11 ist profil nicht im Kernel implementiert. Stattdessen bieten die DLL 4.4.1 eine Implementation im User-Space. Buf zeigt auf bufsiz bytes des Kernels. Alle virtuelle 10 Millisekunden wird der Programmzähler (PC) des Benutzers überprüft. Offset wird abgezogen und das Ergebnis wird mit scale mulipliziert. Wenn diese Adresse in buf liegt, dann wird die darauf zeigende Variable hochgezählt. Wenn scale kleiner als 2 ist oder bufsiz gleich 0 ist, wird profiling verboten.

RÜCKGABEWERT
Null wird immer zurückgegeben.

FEHLER
Profil kann nicht in einem Programm benutzt werden, das auch ITIMER_PROF itimer benutzt. Wird profil mit einem ungültigen buf aufgerufen, erzeugt es ein core dump. Echtes Kernelprofiling erzeugt genauere Resultate.

SIEHE AUCH
gprof(1), setitimer(2), signal(2), sigaction(2).