PROFIL(2) SysV PROFIL(2)
NAME
profil - execution time profile
SYNOPSIS
void profil (buff, bufsiz, offset, scale)
char *buff;
int bufsiz, offset, scale;
DESCRIPTION
buff points to an area of core whose length (in bytes) is given by
bufsiz. After you make a call to profil, the system examines your
program counter (PC) each clock tick. Then the value of offset is
subtracted from it and the remainder is multiplied by scale. If the
resulting number corresponds to an entry inside buff, that entry is
incremented. An entry is defined as a series of bytes with length
sizeof(short).
The scale is interpreted as an unsigned, fixed-point fraction with binary
point at the left: 0177777 (octal) gives a 1-to-1 mapping of program
counters to entries in buff; 077777 (octal) maps each pair of instruction
entries together. 02 (octal) maps all instructions onto the beginning of
buff (producing a non-interrupting core clock).
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
exec(2) is executed, but remains on in child and parent both after a
fork(2). Profiling will be turned off if an update in buff would cause a
memory fault.
SEE ALSO
prof(1), times(2), monitor(3C).
DIAGNOSTICS
Not defined.