MONITOR(III)                 2/11/74                 MONITOR(III)



NAME
     monitor - prepare execution profile

SYNOPSIS
     monitor(lowpc, highpc, buffer, bufsize)
     int lowpc( ), highpc( ), buffer[ ], bufsize;

DESCRIPTION
     Monitor  is an interface to the system's profile entry(II).
     Lowpc and highpc are the names of two functions;  buffer  is
     the  address of a (user supplied) array of bufsize integers.
     Monitor arranges for the system to sample the user's program
     counter  periodically  and record the execution histogram in
     the buffer.  The lowest address sampled is that of lowpc and
     the  highest  is  just  below highpc.  For the results to be
     significant, especially where there are small, heavily  used
     routines,  it is suggested that the buffer be no more than a
     few times smaller than the range of locations sampled.

     To profile the entire program, it is sufficient to use

          extern etext;
          ...
          monitor(2, &etext, buf, bufsize);

     Etext is a loader-defined symbol which lies just  above  all
     the program text.

     To  stop  execution  monitoring and write the results on the
     file mon.out, use

          monitor(0);

     Then, when the program exits, prof(I) can be used to  exam-
     ine the results.

     It is seldom necessary to call this routine directly; the -p
     option of cc is simpler if one is satisfied with its default
     profile range and resolution.

FILES
     mon.out

SEE ALSO
     prof(I), profil(II), cc(I)












                              - 1 -