gprof man page on OpenDarwin

Man page or keyword search:  
man Server   3202 pages
apropos Keyword Search (all sections)
Output format
OpenDarwin logo
[printable version]

GPROF(1)							      GPROF(1)

       gprof - display call graph profile data

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

       gprof  produces	an execution profile of a C, Pascal, or Fortran77 pro‐
       gram.  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 by default), which is created by programs compiled  with
       the  -pg	 option	 of  cc,  pc,  and f77.	 The symbol table in the named
       object file (a.out by 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 pro‐
       file files.

       First, a flat profile is given.	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 accord‐
       ing 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

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

       gprof  accepts a ``fat'' file for the a.out file, using the host archi‐
       tecture from the file.  (It is an error if the ``fat''  file  does  not
       contain the host architecture.)

       The following options are available:

       -a     suppresses  the displaying of statically declared functions.  If
	      this option is given, all relevant information about the	static
	      function	(such as 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     suppresses  the displaying of a description of each field in the

       -c     the static call graph of the program is discovered by a  heuris‐
	      tic  which  examines the text space of the object file.  Static-
	      only parents or children are indicated with call	counts	of  0.
	      (The -c option is currently not supported.)

       -e name
	      suppresses the displaying 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 displaying 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 per‐
	      centage  time  computations.  (For example, -E mcount and all of
	      the other monitor(3) routines are excluded by default.)

       -f name
	      displays 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
	      displays the graph profile entry of only the  routine  name  and
	      its  descendants	(as -f, above) and also uses only the times of
	      the displayed routines in total  time  and  percentage  computa‐
	      tions.  More than one -F option may be given.  Only one name may
	      be given with each -F option.  The -F option  overrides  the  -E

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

       -S     produces four order files suitable as input to ld(1): gmon.order
	      is an ordering based on a closest is best algorithm, callf.order
	      is  based	 on call frequency, callo.order is based on call order
	      and time.order is based on time.	The order files	 contain  only
	      those  functions which were called or sampled (including sponta‐
	      neous functions). For library functions to appear	 correctly  in
	      the  order  file,	 a  whatsloaded	 file produced by ld(1) should
	      exist in the working directory. Filenames in the order file will
	      be  missing  for: files compiled without the -g option, assembly
	      files, and stripped executables.	This option does not work with
	      executables  that	 have  already been scattered.	The gmon.order
	      file can take a long time to produce and can be suppressed  with
	      the -x option.

       -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

       a.out	       the namelist and text space.
       gmon.out	       dynamic call graph and profile.
       gmon.sum	       summarized dynamic call graph and profile.
       gmon.order      ordering based on closest is best algorithm.
       callf.order     ordering based on call frequency.
       callo.order     ordering based on call order.
       time.order      ordering based on time.

       monitor(3), profil(2), cc(1)
       dyld(1) and the DYLD_IMAGE_SUFFIX environment variable
       ``gprof: A Call Graph Execution Profiler'', by Graham,  S.L.,  Kessler,
       P.B.,  McKusick, M.K.; Proceedings of the SIGPLAN '82 Symposium on Com‐
       piler Construction, SIGPLAN Notices, Vol. 17, No. 6, pp. 120-126,  June

       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 func‐
       tion is directly proportional to the number of times that arc  is  tra‐

       Parents	which  are not themselves profiled will have the time of their
       profiled children propagated to them, but they will appear to be	 spon‐
       taneously  invoked  in  the call graph listing, and will not have their
       time propagated further.	 Similarly, signal catchers, even though  pro‐
       filed,  will  appear  to be spontaneous (although for more obscure rea‐
       sons).  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(2) or return normally for the  pro‐
       filing information to be saved in the gmon.out file.

Apple Computer, Inc.	       November 25, 2002		      GPROF(1)

List of man pages available for OpenDarwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net