blob: 821468370a2a6415051a6a3bbe8e39df83d0f1b3 [file] [log] [blame]
<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, 1992, 1997, 1998, 1999, 2000, 2001, 2003,
2007, 2008, 2009 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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</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>