Náhodou jsem to našel volně zdokumentované v perf script
, ale platí to i pro další příkazy:-F
volba přijímá srcline
. Takže můžete udělat -F+srcline
přidat číslo řádku ke stávajícím sloupcům.
Příklad:perf report -g fractal -F+period,srcline
Samples: 22K of event 'cycles:u', Event count (approx.): 13031011295
Children Self Period Source:Line Command Shared Object Symbol
+ 99.98% 38.76% 5051224000 test.cpp:7 a a [.] fib
+ 96.42% 0.00% 0 _start+94372992700461 a a [.] _start
+ 96.42% 0.00% 0 __libc_start_main+140304673091826 a libc-2.29.so [.] __libc_start_main
+ 96.42% 0.00% 0 test.cpp:13 a a [.] main
+ 21.47% 21.47% 2797741850 test.cpp:8 a a [.] fib
+ 16.69% 16.69% 2174469736 test.cpp:4 a a [.] fib
+ 16.37% 16.36% 2132462705 test.cpp:6 a a [.] fib
+ 6.69% 6.69% 871128215 test.cpp:5 a a [.] fib
Fragmenty (celé řádky) zdrojového kódu jsou vytištěny perf v režimu anotací (manová stránka; příslušná část The Perf Tutorial). Použijte perf annotate -s=MyFunction
nebo v perf report
přejděte dolů do podstromu, kde je vaše funkce MyFunction kořenem stromu (řádek, kde je hlášen vlastní čas; můžete použít / příkaz k vyhledání) a poté vyberte a (nebo Enter potom anotovat "MyFunction").
Zdrojový kód a jeho řádky by měly být viditelné poblíž montážních linek v režimu anotací. http://man7.org/linux/man-pages/man1/perf-annotate.1.html
Tento příkaz přečte vstupní soubor a zobrazí anotovanou verzi kódu. Pokud soubor objektu obsahuje symboly ladění, pak se zdrojový kód zobrazí vedle kódu sestavení.
-l, --print-line Print matching source lines (may be slow). --source Interleave source code with assembly code. Enabled by default, disable with `--no-source`. -s, --symbol=<symbol> Symbol to annotate.
Zpráva Perf může při řazení používat srclines (--sort=
možnost), ale pokyny jsou nejasné. Dokumenty manuálové stránky --source
možnost také, ale zřejmě se používá pouze v režimu Anotace some_function:http://man7.org/linux/man-pages/man1/perf-report.1.html
--source Interleave source code with assembly code. Enabled by default, disable with --no-source.