gprof: Analysis Options
4.2 Analysis Options
====================
'-a'
'--no-static'
The '-a' option causes 'gprof' to suppress the printing of
statically declared (private) functions. (These are functions
whose names are not listed as global, and which are not visible
outside the file/function/block where they were defined.) Time
spent in these functions, calls to/from them, etc., will all be
attributed to the function that was loaded directly before it in
the executable file. This option affects both the flat profile and
the call graph.
'-c'
'--static-call-graph'
The '-c' option causes the call graph of the program to be
augmented by a heuristic which examines the text space of the
object file and identifies function calls in the binary machine
code. Since normal call graph records are only generated when
functions are entered, this option identifies children that could
have been called, but never were. Calls to functions that were not
compiled with profiling enabled are also identified, but only if
symbol table entries are present for them. Calls to dynamic
library routines are typically _not_ found by this option. Parents
or children identified via this heuristic are indicated in the call
graph with call counts of '0'.
'-D'
'--ignore-non-functions'
The '-D' option causes 'gprof' to ignore symbols which are not
known to be functions. This option will give more accurate profile
data on systems where it is supported (Solaris and HPUX for
example).
'-k FROM/TO'
The '-k' option allows you to delete from the call graph any arcs
from symbols matching symspec FROM to those matching symspec TO.
'-l'
'--line'
The '-l' option enables line-by-line profiling, which causes
histogram hits to be charged to individual source code lines,
instead of functions. This feature only works with programs
compiled by older versions of the 'gcc' compiler. Newer versions
of 'gcc' are designed to work with the 'gcov' tool instead.
If the program was compiled with basic-block counting enabled, this
option will also identify how many times each line of code was
executed. While line-by-line profiling can help isolate where in a
large function a program is spending its time, it also
significantly increases the running time of 'gprof', and magnifies
statistical inaccuracies. Statistical Sampling Error
Sampling Error.
'--inline-file-names'
This option causes 'gprof' to print the source file after each
symbol in both the flat profile and the call graph. The full path
to the file is printed if used with the '-L' option.
'-m NUM'
'--min-count=NUM'
This option affects execution count output only. Symbols that are
executed less than NUM times are suppressed.
'-nSYMSPEC'
'--time=SYMSPEC'
The '-n' option causes 'gprof', in its call graph analysis, to only
propagate times for symbols matching SYMSPEC.
'-NSYMSPEC'
'--no-time=SYMSPEC'
The '-n' option causes 'gprof', in its call graph analysis, not to
propagate times for symbols matching SYMSPEC.
'-SFILENAME'
'--external-symbol-table=FILENAME'
The '-S' option causes 'gprof' to read an external symbol table
file, such as '/proc/kallsyms', rather than read the symbol table
from the given object file (the default is 'a.out'). This is
useful for profiling kernel modules.
'-z'
'--display-unused-functions'
If you give the '-z' option, 'gprof' will mention all functions in
the flat profile, even those that were never called, and that had
no time spent in them. This is useful in conjunction with the '-c'
option for discovering which routines were never called.