Saya tidak sengaja menemukannya didokumentasikan secara longgar di perf script
, tetapi juga berlaku untuk perintah lain:-F
opsi menerima srcline
. Jadi Anda bisa melakukan -F+srcline
untuk menambahkan nomor baris ke kolom yang ada.
Contoh: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
Fragmen (baris penuh) kode sumber dicetak oleh perf dalam mode anotasi (halaman manual; bagian yang relevan dari Tutorial Perf). Gunakan perf annotate -s=MyFunction
atau di perf report
gulir ke bawah ke subtree di mana MyFunction Anda adalah root of tree (baris di mana waktu sendiri dilaporkan; Anda dapat menggunakan / untuk mencarinya) lalu pilih a (atau Enter lalu Anotasi "MyFunction").
Kode sumber dan garisnya harus terlihat di dekat jalur perakitan dalam mode Anotasi. http://man7.org/linux/man-pages/man1/perf-annotate.1.html
Perintah ini membaca file input dan menampilkan versi kode yang dianotasi. Jika file objek memiliki simbol debug maka kode sumber akan ditampilkan di samping kode rakitan.
-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.
Laporan perf dapat menggunakan srclines dalam penyortiran (--sort=
opsi) tetapi instruksi tidak jelas. Halaman manualnya mendokumentasikan --source
opsi juga, tetapi ternyata itu hanya digunakan dalam mode Annotate 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.