You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
6.8 KiB
HTML
132 lines
6.8 KiB
HTML
<html lang="en">
|
|
<head>
|
|
<title>GNU gprof</title>
|
|
<meta http-equiv="Content-Type" content="text/html">
|
|
<meta name="description" content="GNU gprof">
|
|
<meta name="generator" content="makeinfo 4.7">
|
|
<link title="Top" rel="start" href="#Top">
|
|
<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, 92, 97, 98, 99, 2000, 2001, 2003, 2007 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.1
|
|
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".
|
|
|
|
man end-->
|
|
<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; }
|
|
--></style>
|
|
</head>
|
|
<body>
|
|
<h1 class="settitle">GNU gprof</h1>
|
|
<div class="contents">
|
|
<h2>Table of Contents</h2>
|
|
<ul>
|
|
<li><a name="toc_Top" href="index.html#Top">Profiling a Program: Where Does It Spend Its Time?</a>
|
|
<li><a name="toc_Introduction" href="Introduction.html#Introduction">1 Introduction to Profiling</a>
|
|
<li><a name="toc_Compiling" href="Compiling.html#Compiling">2 Compiling a Program for Profiling</a>
|
|
<li><a name="toc_Executing" href="Executing.html#Executing">3 Executing the Program</a>
|
|
<li><a name="toc_Invoking" href="Invoking.html#Invoking">4 <code>gprof</code> Command Summary</a>
|
|
<ul>
|
|
<li><a href="Output-Options.html#Output-Options">4.1 Output Options</a>
|
|
<li><a href="Analysis-Options.html#Analysis-Options">4.2 Analysis Options</a>
|
|
<li><a href="Miscellaneous-Options.html#Miscellaneous-Options">4.3 Miscellaneous Options</a>
|
|
<li><a href="Deprecated-Options.html#Deprecated-Options">4.4 Deprecated Options</a>
|
|
<li><a href="Symspecs.html#Symspecs">4.5 Symspecs</a>
|
|
</li></ul>
|
|
<li><a name="toc_Output" href="Output.html#Output">5 Interpreting <code>gprof</code>'s Output</a>
|
|
<ul>
|
|
<li><a href="Flat-Profile.html#Flat-Profile">5.1 The Flat Profile</a>
|
|
<li><a href="Call-Graph.html#Call-Graph">5.2 The Call Graph</a>
|
|
<ul>
|
|
<li><a href="Primary.html#Primary">5.2.1 The Primary Line</a>
|
|
<li><a href="Callers.html#Callers">5.2.2 Lines for a Function's Callers</a>
|
|
<li><a href="Subroutines.html#Subroutines">5.2.3 Lines for a Function's Subroutines</a>
|
|
<li><a href="Cycles.html#Cycles">5.2.4 How Mutually Recursive Functions Are Described</a>
|
|
</li></ul>
|
|
<li><a href="Line_002dby_002dline.html#Line_002dby_002dline">5.3 Line-by-line Profiling</a>
|
|
<li><a href="Annotated-Source.html#Annotated-Source">5.4 The Annotated Source Listing</a>
|
|
</li></ul>
|
|
<li><a name="toc_Inaccuracy" href="Inaccuracy.html#Inaccuracy">6 Inaccuracy of <code>gprof</code> Output</a>
|
|
<ul>
|
|
<li><a href="Sampling-Error.html#Sampling-Error">6.1 Statistical Sampling Error</a>
|
|
<li><a href="Assumptions.html#Assumptions">6.2 Estimating <code>children</code> Times</a>
|
|
</li></ul>
|
|
<li><a name="toc_How-do-I_003f" href="How-do-I_003f.html#How-do-I_003f">7 Answers to Common Questions</a>
|
|
<li><a name="toc_Incompatibilities" href="Incompatibilities.html#Incompatibilities">8 Incompatibilities with Unix <code>gprof</code></a>
|
|
<li><a name="toc_Details" href="Details.html#Details">9 Details of Profiling</a>
|
|
<ul>
|
|
<li><a href="Implementation.html#Implementation">9.1 Implementation of Profiling</a>
|
|
<li><a href="File-Format.html#File-Format">9.2 Profiling Data File Format</a>
|
|
<ul>
|
|
<li><a href="File-Format.html#File-Format">9.2.1 Histogram Records</a>
|
|
<li><a href="File-Format.html#File-Format">9.2.2 Call-Graph Records</a>
|
|
<li><a href="File-Format.html#File-Format">9.2.3 Basic-Block Execution Count Records</a>
|
|
</li></ul>
|
|
<li><a href="Internals.html#Internals">9.3 <code>gprof</code>'s Internal Operation</a>
|
|
<li><a href="Debugging.html#Debugging">9.4 Debugging <code>gprof</code></a>
|
|
</li></ul>
|
|
<li><a name="toc_GNU-Free-Documentation-License" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">Appendix A GNU Free Documentation License</a>
|
|
<ul>
|
|
<li><a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">ADDENDUM: How to use this License for your documents</a>
|
|
</li></ul>
|
|
</li></ul>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="node">
|
|
<p>
|
|
<a name="Top"></a>Next: <a rel="next" accesskey="n" href="Introduction.html#Introduction">Introduction</a>,
|
|
Up: <a rel="up" accesskey="u" href="../index.html#dir">(dir)</a>
|
|
<hr><br>
|
|
</div>
|
|
|
|
<h2 class="unnumbered">Profiling a Program: Where Does It Spend Its Time?</h2>
|
|
|
|
<p>This manual describes the <span class="sc">gnu</span> profiler, <code>gprof</code>, and how you
|
|
can use it to determine which parts of a program are taking most of the
|
|
execution time. We assume that you know how to write, compile, and
|
|
execute programs. <span class="sc">gnu</span> <code>gprof</code> was written by Jay Fenlason.
|
|
|
|
<p>This manual is for <code>gprof</code>
|
|
(GNU Binutils)
|
|
version 2.19.
|
|
|
|
<p>This document is distributed under the terms of the GNU Free
|
|
Documentation License. A copy of the license is included in the
|
|
section entitled “GNU Free Documentation License”.
|
|
|
|
<ul class="menu">
|
|
<li><a accesskey="1" href="Introduction.html#Introduction">Introduction</a>: What profiling means, and why it is useful.
|
|
|
|
<li><a accesskey="2" href="Compiling.html#Compiling">Compiling</a>: How to compile your program for profiling.
|
|
<li><a accesskey="3" href="Executing.html#Executing">Executing</a>: Executing your program to generate profile data
|
|
<li><a accesskey="4" href="Invoking.html#Invoking">Invoking</a>: How to run <code>gprof</code>, and its options
|
|
|
|
<li><a accesskey="5" href="Output.html#Output">Output</a>: Interpreting <code>gprof</code>'s output
|
|
|
|
<li><a accesskey="6" href="Inaccuracy.html#Inaccuracy">Inaccuracy</a>: Potential problems you should be aware of
|
|
<li><a accesskey="7" href="How-do-I_003f.html#How-do-I_003f">How do I?</a>: Answers to common questions
|
|
<li><a accesskey="8" href="Incompatibilities.html#Incompatibilities">Incompatibilities</a>: (between <span class="sc">gnu</span> <code>gprof</code> and Unix <code>gprof</code>.)
|
|
<li><a accesskey="9" href="Details.html#Details">Details</a>: Details of how profiling is done
|
|
<li><a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">GNU Free Documentation License</a>: GNU Free Documentation License
|
|
</ul>
|
|
|
|
</body></html>
|
|
|