4.3BSD/usr/man/man2/profil.2

Compare this file to the similar file:
Show the results in this format:

.\" Copyright (c) 1980 Regents of the University of California.
.\" All rights reserved.  The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.\"	@(#)profil.2	6.2 (Berkeley) 5/14/86
.\"
.TH PROFIL 2 "May 14, 1986"
.UC 4
.SH NAME
profil \- execution time profile
.SH SYNOPSIS
.nf
.B profil(buff, bufsiz, offset, scale)
.B char *buff;
.B int bufsiz, offset, scale;
.fi
.SH DESCRIPTION
.I Buff
points to an area of core whose length (in bytes) is given by
.IR bufsiz .
After this call, the user's program counter (pc)
is examined each clock tick (10 milliseconds);
.I offset
is subtracted from it, and the result multiplied by
.IR scale .
If the resulting number corresponds to a word
inside
.I buff,
that word is incremented.
.PP
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
.I buff;
0x8000 maps each pair of instruction words
together.
.PP
Profiling is turned off by giving a
.I scale
of 0 or 1.
It is rendered
ineffective by giving a
.I bufsiz
of 0.
Profiling is turned off when an
.I execve
is executed, but remains on in child and parent both
after a
.IR fork .
Profiling is turned off if an update in
.I buff
would cause a memory fault.
.SH "RETURN VALUE
A 0, indicating success, is always returned.
.SH "SEE ALSO"
gprof(1), setitimer(2), monitor(3)