Running gprof (GNAT User’s Guide for Native Platforms)

#### 6.2.1.3 Running gprof ¶

You can call the `gprof` tool as follows:

>     $ gprof my_prog gmon.out

or simply:

>     $ gprof my_prog

The complete form of the `gprof` command line is the following:

>     $ gprof [switches] [executable [data-file]]

`gprof` supports numerous switches, whose order does not matter. You can find the full list of switches in the GNU Profiler User’s Guide.

The following are the most relevant of those switches:

`--demangle[=`style']`, `--no-demangle`

  These switches control whether symbol names should be demangled when printing output. The default is to demangle C++ symbols. You can use `--no-demangle` to turn off demangling. Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler, in particular Ada symbols generated by GNAT can be demangled using `--demangle=gnat`.

`-e `function_name'`

  The `-e `function'` option tells `gprof` not to print information about the function `function_name` and its children in the call graph. The function will still be listed as a child of any functions that call it, but its index number will be shown as `[not printed]`. You may specify more than one `-e` switch, but you may only include one `function_name` with each `-e` switch.

`-E `function_name'`

  The `-E `function'` switch works like the `-e` switch, but execution time spent in the function (and children who were not called from anywhere else) will not be used to compute the percentages-of-time for the call graph. You may specify more than one `-E` switch, but you may only include one `function_name` with each `-E` switch.

`-f `function_name'`

  The `-f `function'` switch causes `gprof` to limit the call graph to the function `function_name` and its children and their children. You may specify more than one `-f` switch, but you may only include one `function_name` with each `-f` switch.

`-F `function_name'`

  The `-F `function'` switch works like the `-f` switch, but only time spent in the function and its children and their children will be used to determine total-time and percentages-of-time for the call graph. You may specify more than one `-F` switch, but you may include only one `function_name` with each `-F` switch. The `-F` switch overrides the `-E` switch.