up | Inhaltsverzeichniss | Kommentar

Manual page for PROFIL(2)

profil - execution time profile

SYNOPSIS

profil(buff, bufsiz, offset, scale)
add_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 (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.

The alternate interface add_profil allows multiple areas of discontiguous memory to be profiled. A single call to profil can be followed by multiple calls to add_profil. The call to profil has the effect of removing the profiling of all areas specified by previous add_profil calls. Being able to specify multiple profiling areas is useful in a system which scatters code across large ranges of virtual address space (for example shared libraries).

RETURN VALUE

A 0, indicating success, is always returned.

SEE ALSO

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


index | Inhaltsverzeichniss | Kommentar

Created by unroff & hp-tools. © somebody (See intro for details). All Rights Reserved. Last modified 11/5/97