PROFIL(2) BSD PROFIL(2)
NAME
profil - execution time profile
SYNOPSIS
profil(buff, bufsiz, offset, scale)
char *buff;
int bufsiz, offset, scale;
DESCRIPTION
buff points to an area of memory whose length (in bytes) is given by
bufsiz. After this call, the user's program counter is examined each
clock tick (10 milliseconds); offset is subtracted from it, and the
result multiplied by scale. If the resulting number corresponds to a
word 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 to 1 mapping of program counters to
words in buff; 0x8000 maps each pair of instruction words together.
Profiling is turned off by giving a scale of 0 or 1. 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.
SEE ALSO
gprof(1), setitimer(2), monitor(3)
DIAGNOSTICS
A 0, indicating success, is always returned.