PROFIL(2)

NAME
profil - execution time profile

SYNOPSIS
profil(buff, bufsiz, offset, scale)
unsigned short *buff;
int bufsiz, offset, scale;

DESCRIPTION
Buff points to an area of core whose length (in bytes) is given by bufsiz. After this call, the user's program counter (pc) is examined each clock tick (10 milliseconds); offset is subtracted from it, and the result multiplied by scale. If the resulting number corresponds to an entry inside buff, that word is incremented.

The scale is interpreted as an unsigned, fixed-point fraction with 16 bits of fraction: 0x10000 gives a 1-1 mapping of bytes in the program to bytes in in buff; 0x8000 is the largest useful value in that it maps adjacent pc values into corresponding adjacent buckets.

Profiling is turned off by giving a scale of 0. It is rendered ineffective by giving a bufsiz of 0. Profiling is turned off when an execve is executed, but remains on in child and parent both after a fork. Profiling is turned off if an update in buff would cause a memory fault.

RETURN VALUE
A 0, indicating success, is always returned.

SEE ALSO
gprof(1), setitimer(2), monitor(3)