### 9.4 Debugging `gprof`

If `gprof` was compiled with debugging enabled, the ‘`-d`’ option triggers debugging output (to stdout) which can be helpful in understanding its operation. The debugging number specified is interpreted as a sum of the following options:

2 - Topological sort

  Monitor depth-first numbering of symbols during call graph analysis

4 - Cycles

  Shows symbols as they are identified as cycle heads

16 - Tallying

  As the call graph arcs are read, show each arc and how the total calls to each function are tallied

32 - Call graph arc sorting

  Details sorting individual parents/children within each call graph entry

64 - Reading histogram and call graph records

  Shows address ranges of histograms as they are read, and each call graph arc

128 - Symbol table

  Reading, classifying, and sorting the symbol table from the object file. For line-by-line profiling (‘`-l`’ option), also shows line numbers being assigned to memory addresses.

256 - Static call graph

  Trace operation of ‘`-c`’ option

512 - Symbol table and arc table lookups

  Detail operation of lookup routines

1024 - Call graph propagation

  Shows how function times are propagated along the call graph

2048 - Basic-blocks

  Shows basic-block records as they are read from profile data (only meaningful with ‘`-l`’ option)

4096 - Symspecs

  Shows symspec-to-symbol pattern matching operation

8192 - Annotate source

  Tracks operation of ‘`-A`’ option