Annotation of cci/usr/src/man/man1/gprof.1, revision 1.1

1.1     ! root        1: .TH GPROF 1 "18 January 1983"
        !             2: \"     @(#)gprof.1     1.9 (Berkeley) 10/12/82
        !             3: .UC 4
        !             4: .SH NAME
        !             5: gprof \- display call graph profile data
        !             6: .SH SYNOPSIS
        !             7: .B gprof
        !             8: [ options ] [ a.out [ gmon.out ... ] ]
        !             9: .SH DESCRIPTION
        !            10: .I gprof
        !            11: produces an execution profile of C, Pascal, or Fortran77 programs.
        !            12: The effect of called routines is incorporated in the profile of each caller.
        !            13: The profile data is taken from the call graph profile file
        !            14: .RI ( gmon.out
        !            15: default) which is created by programs
        !            16: which are compiled with the 
        !            17: .B \-pg
        !            18: option of 
        !            19: .IR cc ,
        !            20: .IR pc ,
        !            21: and
        !            22: .IR f77 .
        !            23: That option also links in versions of the library routines 
        !            24: which are compiled for profiling.
        !            25: The symbol table in the
        !            26: named object file
        !            27: .RI ( a.out
        !            28: default)
        !            29: is read and correlated with the
        !            30: call graph profile file.
        !            31: If more than one profile file is specified,
        !            32: the
        !            33: .I gprof
        !            34: output shows the sum of the profile information in the given profile files.
        !            35: .PP
        !            36: First, a flat profile is given,
        !            37: similar to that provided by
        !            38: .IR prof (1).
        !            39: This listing gives the total execution times
        !            40: and call counts for each of the functions
        !            41: in the program, sorted by decreasing time.
        !            42: .PP
        !            43: Next, these times are propagated along the edges of the call graph.
        !            44: Cycles are discovered, and calls into a cycle are made to share the time 
        !            45: of the cycle.
        !            46: A second listing shows the functions
        !            47: sorted according to the time they represent
        !            48: including the time of their call graph descendents.
        !            49: Below each function entry is shown its (direct) call graph children,
        !            50: and how their times are propagated to this function.
        !            51: A similar display above the function shows how this function's time and the
        !            52: time of its descendents is propagated to its (direct) call graph parents.
        !            53: .PP
        !            54: Cycles are also shown, with an entry for the cycle as a whole and
        !            55: a listing of the members of the cycle and their contributions to the
        !            56: time and call counts of the cycle.
        !            57: .PP
        !            58: The following options are available:
        !            59: .TP
        !            60: .B \-a
        !            61: suppresses the printing of statically declared functions.
        !            62: If this option is given, all relevant information about the static function
        !            63: .RI ( e.g.,
        !            64: time samples, calls to other functions, calls from other functions)
        !            65: belongs to the function loaded just before the static function in the
        !            66: .I a.out
        !            67: file.
        !            68: .TP
        !            69: .B \-b
        !            70: supresses the printing of a description of each field in the profile.
        !            71: .TP
        !            72: .B \-c
        !            73: the static call graph of the program is discovered by a heuristic
        !            74: which examines the text space of the object file.
        !            75: Static-only parents or children are indicated
        !            76: with call counts of 0.
        !            77: .TP
        !            78: .BI \-e " name"
        !            79: suppresses the printing of the graph profile entry for routine
        !            80: .I name
        !            81: and all its descendants
        !            82: (unless they have other ancestors that aren't suppressed).
        !            83: More than one
        !            84: .B \-e
        !            85: option may be given.
        !            86: Only one
        !            87: .I name
        !            88: may be given with each
        !            89: .B \-e
        !            90: option.
        !            91: .TP
        !            92: .BI \-E " name"
        !            93: suppresses the printing of the graph profile entry for routine
        !            94: .I name
        !            95: (and its descendants) as 
        !            96: .BR \-e ,
        !            97: above, and also excludes the time spent in
        !            98: .I name
        !            99: (and its descendants) from the total and percentage time computations.
        !           100: (For example,
        !           101: .B \-E
        !           102: .I mcount
        !           103: .B \-E
        !           104: .I mcleanup
        !           105: is the default.)
        !           106: .TP
        !           107: .BI \-f " name"
        !           108: prints the graph profile entry of only the specified routine
        !           109: .I name
        !           110: and its descendants.
        !           111: More than one
        !           112: .B \-f
        !           113: option may be given.
        !           114: Only one
        !           115: .I name
        !           116: may be given with each
        !           117: .B \-f
        !           118: option.
        !           119: .TP
        !           120: .BI \-F " name"
        !           121: prints the graph profile entry of only the routine
        !           122: .I name
        !           123: and its descendants (as 
        !           124: .BR \-f,
        !           125: above) and also uses only the times of the printed routines
        !           126: in total time and percentage computations.
        !           127: More than one
        !           128: .B \-F
        !           129: option may be given.
        !           130: Only one
        !           131: .I name
        !           132: may be given with each
        !           133: .B \-F
        !           134: option.
        !           135: The
        !           136: .B \-F
        !           137: option
        !           138: overrides
        !           139: the
        !           140: .B \-E
        !           141: option.
        !           142: .TP
        !           143: .B \-s
        !           144: a profile file
        !           145: .I gmon.sum
        !           146: is produced which represents
        !           147: the sum of the profile information in all the specified profile files.
        !           148: This summary profile file may be given to subsequent
        !           149: executions of gprof (probably also with a
        !           150: .BR \-s )
        !           151: to accumulate profile data across several runs of an
        !           152: .I a.out
        !           153: file.
        !           154: .TP
        !           155: .B \-z
        !           156: displays routines which have zero usage (as indicated by call counts
        !           157: and accumulated time).
        !           158: This is useful in conjunction with the 
        !           159: .B \-c
        !           160: option for discovering which routines were never called.
        !           161: .SH FILES
        !           162: .ta 1.5i
        !           163: .I a.out       
        !           164: the namelist and text space.
        !           165: .br
        !           166: .I gmon.out    
        !           167: dynamic call graph and profile.
        !           168: .br
        !           169: .I gmon.sum    
        !           170: summarized dynamic call graph and profile.
        !           171: .SH "SEE ALSO"
        !           172: monitor(3), profil(2), cc(1), prof(1)
        !           173: .br
        !           174: ``gprof: A Call Graph Execution Profiler'', by
        !           175: Graham, S.L., Kessler, P.B., McKusick, M.K.;
        !           176: .IR "Proceedings of the SIGPLAN '82 Symposium on Compiler Construction" ,
        !           177: SIGPLAN Notices, Vol. 17, No. 6, pp. 120-126, June 1982.
        !           178: .SH BUGS
        !           179: Beware of quantization errors.
        !           180: The granularity of the sampling is shown, but remains
        !           181: statistical at best.
        !           182: We assume that the time for each execution of a function
        !           183: can be expressed by the total time for the function divided
        !           184: by the number of times the function is called.
        !           185: Thus the time propagated along the call graph arcs to parents of that
        !           186: function is directly proportional to the number of times that
        !           187: arc is traversed.
        !           188: .PP
        !           189: Parents which are not themselves profiled will have the time of 
        !           190: their profiled children propagated to them, but they will appear
        !           191: to be spontaneously invoked in the call graph listing, and will
        !           192: not have their time propagated further.
        !           193: Similarly, signal catchers, even though profiled, will appear
        !           194: to be spontaneous (although for more obscure reasons).
        !           195: Any profiled children of signal catchers should have their times
        !           196: propagated properly, unless the signal catcher was invoked during 
        !           197: the execution of the profiling routine, in which case all is lost.
        !           198: .PP
        !           199: The profiled program must call 
        !           200: .IR exit (2)
        !           201: or return normally for the profiling information to be saved
        !           202: in the gmon.out file.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.