xref: /original-bsd/lib/libc/sys/profil.2 (revision e59fb703)
Copyright (c) 1980 Regents of the University of California.
All rights reserved.

%sccs.include.proprietary.roff%

@(#)profil.2 6.3 (Berkeley) 04/29/91

PROFIL 2 ""
C 4
NAME
profil - execution time profile
SYNOPSIS
 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 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 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-1 mapping of pc's 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.

"RETURN VALUE
A 0, indicating success, is always returned.
"SEE ALSO"
gprof(1), setitimer(2), monitor(3)