Ich habe es zufällig in perf script
lose dokumentiert gefunden , aber es gilt auch für andere Befehle:-F
Option akzeptiert srcline
. Sie können also -F+srcline
ausführen um die Zeilennummer zu bestehenden Spalten hinzuzufügen.
Beispiel: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
Fragmente (vollständige Zeilen) des Quellcodes werden von perf im Anmerkungsmodus gedruckt (Manpage; relevanter Teil von The Perf Tutorial). Verwenden Sie perf annotate -s=MyFunction
oder in perf report
Scrollen Sie nach unten zu dem Unterbaum, in dem Ihre MyFunction die Wurzel des Baums ist (Zeile, in der die eigene Zeit gemeldet wird; Sie können / verwenden Befehl, um danach zu suchen) und wählen Sie dann a Taste (oder Enter dann kommentieren Sie "MyFunction").
Der Quellcode und seine Zeilen sollten im Anmerkungsmodus in der Nähe von Fließbändern sichtbar sein. http://man7.org/linux/man-pages/man1/perf-annotate.1.html
Dieser Befehl liest die Eingabedatei und zeigt eine kommentierte Version des Codes an. Wenn die Objektdatei Debug-Symbole enthält, wird der Quellcode neben dem Assembler-Code angezeigt.
-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.
Der Leistungsbericht kann Srclines beim Sortieren verwenden (--sort=
Option), aber Anweisungen sind unklar. Seine Handbuchseite dokumentiert --source
Option auch, aber anscheinend wird sie nur im Annotate some_function Modus verwendet: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.