| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | perf-annotate(1) |
| 2 | ================ |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| 6 | perf-annotate - Read perf.data (created by perf record) and display annotated code |
| 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
| 10 | [verse] |
| 11 | 'perf annotate' [-i <file> | --input=file] [symbol_name] |
| 12 | |
| 13 | DESCRIPTION |
| 14 | ----------- |
| 15 | This command reads the input file and displays an annotated version of the |
| 16 | code. If the object file has debug symbols then the source code will be |
| 17 | displayed alongside assembly code. |
| 18 | |
| 19 | If there is no debug info in the object, then annotated assembly is displayed. |
| 20 | |
| 21 | OPTIONS |
| 22 | ------- |
| 23 | -i:: |
| 24 | --input=<file>:: |
| 25 | Input file name. (default: perf.data unless stdin is a fifo) |
| 26 | |
| 27 | -d:: |
| 28 | --dsos=<dso[,dso...]>:: |
| 29 | Only consider symbols in these dsos. |
| 30 | -s:: |
| 31 | --symbol=<symbol>:: |
| 32 | Symbol to annotate. |
| 33 | |
| 34 | -f:: |
| 35 | --force:: |
| 36 | Don't do ownership validation. |
| 37 | |
| 38 | -v:: |
| 39 | --verbose:: |
| 40 | Be more verbose. (Show symbol address, etc) |
| 41 | |
| 42 | -q:: |
| 43 | --quiet:: |
| 44 | Do not show any message. (Suppress -v) |
| 45 | |
| 46 | -n:: |
| 47 | --show-nr-samples:: |
| 48 | Show the number of samples for each symbol |
| 49 | |
| 50 | -D:: |
| 51 | --dump-raw-trace:: |
| 52 | Dump raw trace in ASCII. |
| 53 | |
| 54 | -k:: |
| 55 | --vmlinux=<file>:: |
| 56 | vmlinux pathname. |
| 57 | |
| 58 | --ignore-vmlinux:: |
| 59 | Ignore vmlinux files. |
| 60 | |
| 61 | -m:: |
| 62 | --modules:: |
| 63 | Load module symbols. WARNING: use only with -k and LIVE kernel. |
| 64 | |
| 65 | -l:: |
| 66 | --print-line:: |
| 67 | Print matching source lines (may be slow). |
| 68 | |
| 69 | -P:: |
| 70 | --full-paths:: |
| 71 | Don't shorten the displayed pathnames. |
| 72 | |
| 73 | --stdio:: Use the stdio interface. |
| 74 | |
| 75 | --stdio2:: Use the stdio2 interface, non-interactive, uses the TUI formatting. |
| 76 | |
| 77 | --stdio-color=<mode>:: |
| 78 | 'always', 'never' or 'auto', allowing configuring color output |
| 79 | via the command line, in addition to via "color.ui" .perfconfig. |
| 80 | Use '--stdio-color always' to generate color even when redirecting |
| 81 | to a pipe or file. Using just '--stdio-color' is equivalent to |
| 82 | using 'always'. |
| 83 | |
| 84 | --tui:: Use the TUI interface. Use of --tui requires a tty, if one is not |
| 85 | present, as when piping to other commands, the stdio interface is |
| 86 | used. This interfaces starts by centering on the line with more |
| 87 | samples, TAB/UNTAB cycles through the lines with more samples. |
| 88 | |
| 89 | --gtk:: Use the GTK interface. |
| 90 | |
| 91 | -C:: |
| 92 | --cpu=<cpu>:: Only report samples for the list of CPUs provided. Multiple CPUs can |
| 93 | be provided as a comma-separated list with no space: 0,1. Ranges of |
| 94 | CPUs are specified with -: 0-2. Default is to report samples on all |
| 95 | CPUs. |
| 96 | |
| 97 | --asm-raw:: |
| 98 | Show raw instruction encoding of assembly instructions. |
| 99 | |
| 100 | --show-total-period:: Show a column with the sum of periods. |
| 101 | |
| 102 | --source:: |
| 103 | Interleave source code with assembly code. Enabled by default, |
| 104 | disable with --no-source. |
| 105 | |
| 106 | --symfs=<directory>:: |
| 107 | Look for files with symbols relative to this directory. |
| 108 | |
| 109 | -M:: |
| 110 | --disassembler-style=:: Set disassembler style for objdump. |
| 111 | |
| 112 | --objdump=<path>:: |
| 113 | Path to objdump binary. |
| 114 | |
| 115 | --skip-missing:: |
| 116 | Skip symbols that cannot be annotated. |
| 117 | |
| 118 | --group:: |
| 119 | Show event group information together |
| 120 | |
| 121 | --percent-type:: |
| 122 | Set annotation percent type from following choices: |
| 123 | global-period, local-period, global-hits, local-hits |
| 124 | |
| 125 | The local/global keywords set if the percentage is computed |
| 126 | in the scope of the function (local) or the whole data (global). |
| 127 | The period/hits keywords set the base the percentage is computed |
| 128 | on - the samples period or the number of samples (hits). |
| 129 | |
| 130 | SEE ALSO |
| 131 | -------- |
| 132 | linkperf:perf-record[1], linkperf:perf-report[1] |