Previous: Deprecated Options, Up: Invoking



4.5 Symspecs

Many of the output options allow functions to be included or excluded using symspecs (symbol specifications), which observe the following syntax:

       filename_containing_a_dot
     | funcname_not_containing_a_dot
     | linenumber
     | ( [ any_filename ] `:' ( any_funcname | linenumber ) )

Here are some sample symspecs:

main.c
Selects everything in file main.c—the dot in the string tells gprof to interpret the string as a filename, rather than as a function name. To select a file whose name does not contain a dot, a trailing colon should be specified. For example, odd: is interpreted as the file named odd.
main
Selects all functions named main.

Note that there may be multiple instances of the same function name because some of the definitions may be local (i.e., static). Unless a function name is unique in a program, you must use the colon notation explained below to specify a function from a specific source file.

Sometimes, function names contain dots. In such cases, it is necessary to add a leading colon to the name. For example, :.mul selects function .mul.

In some object file formats, symbols have a leading underscore. gprof will normally not print these underscores. When you name a symbol in a symspec, you should type it exactly as gprof prints it in its output. For example, if the compiler produces a symbol _main from your main function, gprof still prints it as main in its output, so you should use main in symspecs.

main.c:main
Selects function main in file main.c.
main.c:134
Selects line 134 in file main.c.