\chapentry {Introduction to Profiling}{1}{1} \chapentry {Compiling a Program for Profiling}{2}{3} \chapentry {Executing the Program}{3}{5} \chapentry {\code {gprof} Command Summary}{4}{7} \secentry {Output Options}{4}{1}{7} \secentry {Analysis Options}{4}{2}{10} \secentry {Miscellaneous Options}{4}{3}{12} \secentry {Depricated Options}{4}{4}{13} \secentry {Symspecs}{4}{5}{13} \chapentry {Interpreting \code {gprof}'s Output}{5}{15} \secentry {The Flat Profile}{5}{1}{15} \secentry {The Call Graph}{5}{2}{17} \subsecentry {The Primary Line}{5}{2}{1}{18} \subsecentry {Lines for a Function's Callers}{5}{2}{2}{19} \subsecentry {Lines for a Function's Subroutines}{5}{2}{3}{20} \subsecentry {How Mutually Recursive Functions Are Described}{5}{2}{4}{21} \secentry {Line-by-line Profiling}{5}{3}{23} \secentry {The Annotated Source Listing}{5}{4}{25} \chapentry {Inaccuracy of \code {gprof} Output}{6}{27} \secentry {Statistical Sampling Error}{6}{1}{27} \secentry {Estimating \code {children} Times}{6}{2}{28} \chapentry {Answers to Common Questions}{7}{29} \chapentry {Incompatibilities with Unix \code {gprof}}{8}{31} \chapentry {Details of Profiling}{9}{33} \secentry {Implementation of Profiling}{9}{1}{33} \secentry {Profiling Data File Format}{9}{2}{35} \subsecentry {Histogram Records}{9}{2}{1}{35} \subsecentry {Call-Graph Records}{9}{2}{2}{36} \subsecentry {Basic-Block Execution Count Records}{9}{2}{3}{36} \secentry {\code {gprof}'s Internal Operation}{9}{3}{36} \subsecentry {Debugging \code {gprof}}{9}{3}{1}{39}