GNU/Linux >> Tutoriels Linux >  >> Linux

Numéros de ligne source dans le graphique d'appel de performance ?

Je l'ai accidentellement trouvé vaguement documenté dans perf script , mais cela s'applique également aux autres commandes :-F l'option accepte srcline . Vous pouvez donc faire -F+srcline pour ajouter le numéro de ligne aux colonnes existantes.

Exemple :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

Les fragments (lignes complètes) du code source sont imprimés par perf en mode annoté (page de manuel ; partie pertinente du didacticiel Perf). Utilisez perf annotate -s=MyFunction ou en perf report faites défiler vers le bas jusqu'à la sous-arborescence où votre MyFunction est la racine de l'arborescence (ligne où le temps personnel est signalé ; vous pouvez utiliser / commande pour le rechercher) puis sélectionnez a bouton (ou Entrée puis annotez "MaFonction").

Le code source et ses lignes doivent être visibles à proximité des lignes d'assemblage en mode Annoter. http://man7.org/linux/man-pages/man1/perf-annotate.1.html

Cette commande lit le fichier d'entrée et affiche une version annotée du code. Si le fichier objet a des symboles de débogage, le code source sera affiché à côté du code d'assemblage.

   -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.

Le rapport de performance peut utiliser des srclines dans le tri (--sort= option) mais les instructions ne sont pas claires. Sa page de manuel documente --source option aussi, mais apparemment elle n'est utilisée qu'en 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. Grep pour une ligne ne contenant que 5 ou 6 chiffres ?

  2. Historique bash sans numéro de ligne

  3. utilitaire de ligne de commande pour imprimer des statistiques de nombres sous Linux

  4. Appeler une fonction C à partir du code C++

  5. Où est le code du planificateur Linux CFS ?

Comment afficher les numéros de ligne dans Vim / Vi

Principes de base de la compilation de logiciels à partir du code source sous Linux

Ohcount - Le compteur et l'analyseur de lignes de code source

Supprimer le code source Ppa ?

Comment afficher ou masquer les numéros de ligne dans Vim

Comment afficher les numéros de ligne dans Gedit