GNU/Linux >> Belajar Linux >  >> Linux

Nomor baris sumber dalam grafik panggilan perf?

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.

Linux
  1. Kode Sumber Netstat?

  2. Dapatkan Kode Sumber untuk Perintah Linux apa pun

  3. Cara Memanggil Fungsi C di C++, Fungsi C++ di C (Campuran C dan C++)

  1. utilitas baris perintah untuk mencetak statistik angka di linux

  2. Di mana Kode Penjadwal CFS Linux?

  3. Sembunyikan argumen untuk memprogram tanpa kode sumber

  1. Kode keluar baris perintah bash didemistifikasi

  2. Grep Untuk Garis Yang Hanya Berisi 5 Atau 6 Angka?

  3. Bagaimana cara menampilkan nomor baris di vi/vim?