<html lang="en">
<head>
<title>Callers - GNU gprof</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="GNU gprof">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Call-Graph.html#Call-Graph" title="Call Graph">
<link rel="prev" href="Primary.html#Primary" title="Primary">
<link rel="next" href="Subroutines.html#Subroutines" title="Subroutines">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the gprof profiler of the GNU system.

Copyright (C) 1988-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled ``GNU Free Documentation License''.

-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Callers"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Subroutines.html#Subroutines">Subroutines</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Primary.html#Primary">Primary</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Call-Graph.html#Call-Graph">Call Graph</a>
<hr>
</div>

<h4 class="subsection">5.2.2 Lines for a Function's Callers</h4>

<p>A function's entry has a line for each function it was called by. 
These lines' fields correspond to the fields of the primary line, but
their meanings are different because of the difference in context.

   <p>For reference, we repeat two lines from the entry for the function
<code>report</code>, the primary line and one caller-line preceding it, together
with the heading line that shows the names of the fields:

<pre class="smallexample">     index  % time    self  children called     name
     ...
                     0.00    0.05       1/1           main [2]
     [3]    100.0    0.00    0.05       1         report [3]
</pre>
   <p>Here are the meanings of the fields in the caller-line for <code>report</code>
called from <code>main</code>:

     <dl>
<dt><code>self</code><dd>An estimate of the amount of time spent in <code>report</code> itself when it was
called from <code>main</code>.

     <br><dt><code>children</code><dd>An estimate of the amount of time spent in subroutines of <code>report</code>
when <code>report</code> was called from <code>main</code>.

     <p>The sum of the <code>self</code> and <code>children</code> fields is an estimate
of the amount of time spent within calls to <code>report</code> from <code>main</code>.

     <br><dt><code>called</code><dd>Two numbers: the number of times <code>report</code> was called from <code>main</code>,
followed by the total number of non-recursive calls to <code>report</code> from
all its callers.

     <br><dt><code>name and index number</code><dd>The name of the caller of <code>report</code> to which this line applies,
followed by the caller's index number.

     <p>Not all functions have entries in the call graph; some
options to <code>gprof</code> request the omission of certain functions. 
When a caller has no entry of its own, it still has caller-lines
in the entries of the functions it calls.

     <p>If the caller is part of a recursion cycle, the cycle number is
printed between the name and the index number. 
</dl>

   <p>If the identity of the callers of a function cannot be determined, a
dummy caller-line is printed which has &lsquo;<samp><span class="samp">&lt;spontaneous&gt;</span></samp>&rsquo; as the
&ldquo;caller's name&rdquo; and all other fields blank.  This can happen for
signal handlers. 
<!-- What if some calls have determinable callers' names but not all? -->
<!-- FIXME - still relevant? -->

   </body></html>

