### 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