GNU/Linux >> Znalost Linux >  >> Linux

Zdrojová čísla řádků v grafu volání výkonnosti?

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.

Linux
  1. Grep pro řádek obsahující pouze 5 nebo 6 čísel?

  2. Zdrojový kód Netstatu?

  3. Historie Bash bez čísel řádků

  1. Kde najdu zdrojový kód systémového volání?

  2. Volání funkce C z kódu C++

  3. Kde je Linux CFS Scheduler Code?

  1. Ukončovací kódy příkazového řádku Bash byly demystifikovány

  2. Jak zobrazit čísla řádků ve vi/vim?

  3. Jak volat funkci C v C++, funkci C++ v C (Mix C a C++)