Next: , Previous: Output Options, Up: Invoking   [Contents]


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. See Statistical 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.


Next: , Previous: Output Options, Up: Invoking   [Contents]