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.