PROFIL(2) 1986 PROFIL(2) NNAAMMEE profil - execution time profile SSYYNNOOPPSSIISS pprrooffiill((bbuuffff,, bbuuffssiizz,, ooffffsseett,, ssccaallee)) cchhaarr **bbuuffff;; iinntt bbuuffssiizz,, ooffffsseett,, ssccaallee;; DDEESSCCRRIIPPTTIIOONN _B_u_f_f points to an area of core whose length (in bytes) is given by _b_u_f_s_i_z. After this call, the user's program counter (pc) is examined each clock tick (10 milliseconds); _o_f_f_s_e_t is subtracted from it, and the result multiplied by _s_c_a_l_e. If the resulting number corresponds to a word inside _b_u_f_f, that word is incremented. The scale is interpreted as an unsigned, fixed-point frac- tion with 16 bits of fraction: 0x10000 gives a 1-1 mapping of pc's to words in _b_u_f_f; 0x8000 maps each pair of instruc- tion words together. Profiling is turned off by giving a _s_c_a_l_e of 0 or 1. It is rendered ineffective by giving a _b_u_f_s_i_z of 0. Profiling is turned off when an _e_x_e_c_v_e is executed, but remains on in child and parent both after a _f_o_r_k. Profiling is turned off if an update in _b_u_f_f would cause a memory fault. RREETTUURRNN VVAALLUUEE A 0, indicating success, is always returned. SSEEEE AALLSSOO gprof(1), setitimer(2), monitor(3) Printed 7/27/90 May 1