Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ gprof(1) — UTek 4.0

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 4/6/89                                                  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 4/6/89                                                  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), and prof(1).




























Printed 4/6/89                                                  3





































































%%index%%
na:264,91;
sy:355,190;
de:545,2038;
op:2583,641;3560,2538;
fi:6098,247;
ca:6681,1289;
se:7970,201;
%%index%%000000000132

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