<html lang="en">
<head>
<title>Line-by-line - 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="Output.html#Output" title="Output">
<link rel="prev" href="Call-Graph.html#Call-Graph" title="Call Graph">
<link rel="next" href="Annotated-Source.html#Annotated-Source" title="Annotated Source">
<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="Line-by-line"></a>
<a name="Line_002dby_002dline"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Annotated-Source.html#Annotated-Source">Annotated Source</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Call-Graph.html#Call-Graph">Call Graph</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Output.html#Output">Output</a>
<hr>
</div>

<h3 class="section">5.3 Line-by-line Profiling</h3>

<p><code>gprof</code>'s &lsquo;<samp><span class="samp">-l</span></samp>&rsquo; option causes the program to perform
<dfn>line-by-line</dfn> profiling.  In this mode, histogram
samples are assigned not to functions, but to individual
lines of source code.  This only works with programs compiled with
older versions of the <code>gcc</code> compiler.  Newer versions of <code>gcc</code>
use a different program - <code>gcov</code> - to display line-by-line
profiling information.

   <p>With the older versions of <code>gcc</code> the program usually has to be
compiled with a &lsquo;<samp><span class="samp">-g</span></samp>&rsquo; option, in addition to &lsquo;<samp><span class="samp">-pg</span></samp>&rsquo;, in order
to generate debugging symbols for tracking source code lines. 
Note, in much older versions of <code>gcc</code> the program had to be
compiled with the &lsquo;<samp><span class="samp">-a</span></samp>&rsquo; command line option as well.

   <p>The flat profile is the most useful output table
in line-by-line mode. 
The call graph isn't as useful as normal, since
the current version of <code>gprof</code> does not propagate
call graph arcs from source code lines to the enclosing function. 
The call graph does, however, show each line of code
that called each function, along with a count.

   <p>Here is a section of <code>gprof</code>'s output, without line-by-line profiling. 
Note that <code>ct_init</code> accounted for four histogram hits, and
13327 calls to <code>init_block</code>.

<pre class="smallexample">     Flat profile:
     
     Each sample counts as 0.01 seconds.
       %   cumulative   self              self     total
      time   seconds   seconds    calls  us/call  us/call  name
      30.77      0.13     0.04     6335     6.31     6.31  ct_init
     
     
     		     Call graph (explanation follows)
     
     
     granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
     
     index % time    self  children    called     name
     
                     0.00    0.00       1/13496       name_too_long
                     0.00    0.00      40/13496       deflate
                     0.00    0.00     128/13496       deflate_fast
                     0.00    0.00   13327/13496       ct_init
     [7]      0.0    0.00    0.00   13496         init_block
     
</pre>
   <p>Now let's look at some of <code>gprof</code>'s output from the same program run,
this time with line-by-line profiling enabled.  Note that <code>ct_init</code>'s
four histogram hits are broken down into four lines of source code&mdash;one hit
occurred on each of lines 349, 351, 382 and 385.  In the call graph,
note how
<code>ct_init</code>'s 13327 calls to <code>init_block</code> are broken down
into one call from line 396, 3071 calls from line 384, 3730 calls
from line 385, and 6525 calls from 387.

<pre class="smallexample">     Flat profile:
     
     Each sample counts as 0.01 seconds.
       %   cumulative   self
      time   seconds   seconds    calls  name
       7.69      0.10     0.01           ct_init (trees.c:349)
       7.69      0.11     0.01           ct_init (trees.c:351)
       7.69      0.12     0.01           ct_init (trees.c:382)
       7.69      0.13     0.01           ct_init (trees.c:385)
     
     
     		     Call graph (explanation follows)
     
     
     granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
     
       % time    self  children    called     name
     
                 0.00    0.00       1/13496       name_too_long (gzip.c:1440)
                 0.00    0.00       1/13496       deflate (deflate.c:763)
                 0.00    0.00       1/13496       ct_init (trees.c:396)
                 0.00    0.00       2/13496       deflate (deflate.c:727)
                 0.00    0.00       4/13496       deflate (deflate.c:686)
                 0.00    0.00       5/13496       deflate (deflate.c:675)
                 0.00    0.00      12/13496       deflate (deflate.c:679)
                 0.00    0.00      16/13496       deflate (deflate.c:730)
                 0.00    0.00     128/13496       deflate_fast (deflate.c:654)
                 0.00    0.00    3071/13496       ct_init (trees.c:384)
                 0.00    0.00    3730/13496       ct_init (trees.c:385)
                 0.00    0.00    6525/13496       ct_init (trees.c:387)
     [6]  0.0    0.00    0.00   13496         init_block (trees.c:408)
     
</pre>
   </body></html>

