PMCANNOTATE(8) BSD System Manager's Manual PMCANNOTATE(8)NAMEpmcannotate — sources printout with inlined profiling
SYNOPSISpmcannotate [-a] [-h] [-k pathname] [-l level] pmcout.out binaryobj
The pmcannotate utility can produce both C sources or assembly sources of
a program with a line-by-line based profiling. The profiling informa‐
tions are retrieved through a pmcstat(8) raw output while the program
operations are retrieved through the objdump(1) tool.
When calling pmcannotate the raw output is passed through the pmcout.out
argument, while the program is passed through the binaryobj argument.
As long as pmcannotate relies on objdump(1) and pmcstat(8) to work, it
will fail if one of them is not available.
The following options are available:
-a Shows the program profiling inlined in the assembly code only.
No C informations involving C sources are provided.
-h Prints out informations about the usage of the tool.
Changes the lower bound (expressed in percentage) for traced
functions that will be printed out in the report. The default
value is 0.5%.
Set the pathname of the kernel directory to argument kerneldir.
This directory specifies where pmcannotate should look for the
kernel and its modules. The default is /boot/kernel.
As long as pmcannotate relies on the objdump(1) utility to retrieve the C
code, the program needs to be compiled with debugging options. Some‐
times, in particular with heavy optimization levels, the objdump(1) util‐
ity embeds the code of inlining functions directly in the callers, making
an output difficult to read. The x86 version reports the sampling from
pmcstat collecting the following instruction in regard of the interrupted
one. This means that the samples may be attributed to the line below the
one of interest.
SEE ALSOobjdump(1), pmcstat(8)AUTHORS
Attilio Rao ⟨attilio@FreeBSD.org⟩
BSD November 20, 2008 BSD