Accidentalmente lo encontré vagamente documentado en perf script
, pero también se aplica a otros comandos:-F
la opción acepta srcline
. Entonces puedes hacer -F+srcline
para agregar el número de línea a las columnas existentes.
Ejemplo: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
Perf imprime fragmentos (líneas completas) del código fuente en modo de anotación (página del manual; parte relevante de The Perf Tutorial). Usa perf annotate -s=MyFunction
o en perf report
desplácese hacia abajo hasta el subárbol donde MyFunction es la raíz del árbol (línea donde se informa el tiempo propio; puede usar / comando para buscarlo) y luego seleccione a botón (o Intro luego anote "MyFunction").
El código fuente y sus líneas deben estar visibles cerca de las líneas de ensamblaje en el modo de anotación. http://man7.org/linux/man-pages/man1/perf-annotate.1.html
Este comando lee el archivo de entrada y muestra una versión anotada del código. Si el archivo de objeto tiene símbolos de depuración, el código fuente se mostrará junto con el código ensamblador.
-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.
El informe de rendimiento puede usar srclines en la clasificación (--sort=
opción) pero las instrucciones no son claras. Su página man documenta --source
opción también, pero aparentemente solo se usa en el modo Anotar alguna_función: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.