Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ gprof(1) — UTek W2.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

monitor(3c)

profil(2)

cc(1)

prof(1)



GPROF(1)                COMMAND REFERENCE                GPROF(1)



NAME
     gprof - display call graph profile data

SYNOPSIS
     gprof [ options ] [ a.out [ gmon.out ... ] ]

DESCRIPTION
     gprof produces an execution profile of C, Pascal, or
     FORTRAN77 programs.  The effect of called routines is
     incorporated in the profile of each caller.  The profile
     data is taken from the call graph profile file (gmon.out
     default) which is created by programs which are compiled
     with the -pg option of cc, pc, and f77.  That option also
     links in versions of the library routines which are compiled
     for profiling.  The symbol table in the named object file
     (a.out default) is read and correlated with the call graph
     profile file.  If more than one profile file is specified,
     the gprof output shows the sum of the profile information in
     the given profile files.

     First, a flat profile is given, similar to that provided by
     prof(1).  This listing gives the total execution times and
     call counts for each of the functions in the program, sorted
     by decreasing time.

     Next, these times are propagated along the edges of the call
     graph.  Cycles are discovered, and calls into a cycle are
     made to share the time of the cycle.  A second listing shows
     the functions sorted according to the time they represent
     including the time of their call graph descendents.  Below
     each function entry is shown its (direct) call graph
     children, and how their times are propagated to this
     function.  A similar display above the function shows how
     this function's time and the time of its descendents is
     propagated to its (direct) call graph parents.

     Cycles are also shown, with an entry for the cycle as a
     whole and a listing of the members of the cycle and their
     contributions to the time and call counts of the cycle.

OPTIONS
     -a   suppresses the printing of statically declared
          functions.  If this option is given, all relevant
          information about the static function (e.g., time
          samples, calls to other functions, calls from other
          functions) belongs to the function loaded just before
          the static function in the a.out file.

     -b   supresses the printing of a description of each field
          in the profile.

     -c   the static call graph of the program is discovered by a



Printed 10/17/86                                                1





GPROF(1)                COMMAND REFERENCE                GPROF(1)



          heuristic which examines the text space of the object
          file.  Static-only parents or children are indicated
          with call counts of 0.

     -e name
          suppresses the printing of the graph profile entry for
          routine name and all its descendants (unless they have
          other ancestors that aren't suppressed).  More than one
          -e option may be given.  Only one name may be given
          with each -e option.

     -E name
          suppresses the printing of the graph profile entry for
          routine name (and its descendants) as -e, above, and
          also excludes the time spent in name (and its
          descendants) from the total and percentage time
          computations.  (For example, -E mcount -E mcleanup is
          the default.)

     -f name
          prints the graph profile entry of only the specified
          routine name and its descendants.  More than one -f
          option may be given.  Only one name may be given with
          each -f option.

     -F name
          prints the graph profile entry of only the routine name
          and its descendants (as -f, above) and also uses only
          the times of the printed routines in total time and
          percentage computations.  More than one -F option may
          be given.  Only one name may be given with each -F
          option.  The -F option overrides the -E option.

     -s   a profile file gmon.sum is produced which represents
          the sum of the profile information in all the specified
          profile files.  This summary profile file may be given
          to subsequent executions of gprof (probably also with a
          -s) to accumulate profile data across several runs of
          an a.out file.

     -z   displays routines which have zero usage (as indicated
          by call counts and accumulated time).  This is useful
          in conjunction with the -c option for discovering which
          routines were never called.

FILES
     a.out                    namelist and text space

     gmon.out                 dynamic call graph and profile

     gmon.sum                 summarized dynamic call graph and
                              profile



Printed 10/17/86                                                2





GPROF(1)                COMMAND REFERENCE                GPROF(1)



CAVEATS
     Beware of quantization errors.  The granularity of the
     sampling is shown, but remains statistical at best.  We
     assume that the time for each execution of a function can be
     expressed by the total time for the function divided by the
     number of times the function is called.  Thus the time
     propagated along the call graph arcs to parents of that
     function is directly proportional to the number of times
     that arc is traversed.

     Parents which are not themselves profiled will have the time
     of their profiled children propagated to them, but they will
     appear to be spontaneously invoked in the call graph
     listing, and will not have their time propagated further.
     Similarly, signal catchers, even though profiled, will
     appear to be spontaneous (although for more obscure
     reasons).  Any profiled children of signal catchers should
     have their times propagated properly, unless the signal
     catcher was invoked during the execution of the profiling
     routine, in which case all is lost.

     The profiled program must call exit(3c) or return normally
     for the profiling information to be saved in the gmon.out
     file.

SEE ALSO
     monitor(3c), profil(2), cc(1), prof(1).




























Printed 10/17/86                                                3





































































%%index%%
na:72,75;
sy:147,138;
de:285,1942;
op:2227,608;2979,2431;
fi:5410,291;
ca:5845,1261;
se:7106,169;
%%index%%000000000131

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026