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


     monitor - prepare execution profile


     monitor(lowpc, highpc, buffer, bufsize)

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


     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


     Then, when the program  exits,  prof  (I)  can  be  used  to

     examine 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.




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