Estoy tratando de perfilar algunos programas C++ en MacOSX. Así que construí google-perftools
, escribí un programa, compilado usando MacPorts g ++ 4.7, con -g
indicador del compilador, y vinculado a libprofiler
. Entonces me encontré:Número de línea en Google Perftools Analizador de CPU en MacOSX
CPUPROFILE=cpu.profile ./a.out
Entonces me encontré con pprof para generar la salida:
[hidden ~]$ pprof --text ./a.out cpu.profile
Using local file ./a.out.
Using local file cpu.profile.
Removing __sigtramp from all stack traces.
Total: 282 samples
107 37.9% 37.9% 107 37.9% 0x000000010d72229e
16 5.7% 43.6% 16 5.7% 0x000000010d721a5f
12 4.3% 47.9% 12 4.3% 0x000000010d721de8
11 3.9% 51.8% 11 3.9% 0x000000010d721a4e
9 3.2% 55.0% 9 3.2% 0x000000010d721e13
8 2.8% 57.8% 8 2.8% 0x000000010d721a64
7 2.5% 60.3% 7 2.5% 0x000000010d7222f0
6 2.1% 62.4% 6 2.1% 0x000000010d721a4c
6 2.1% 64.5% 6 2.1% 0x000000010d721b1f
6 2.1% 66.7% 6 2.1% 0x000000010d721e0c
5 1.8% 68.4% 5 1.8% 0x000000010d721fba
......
Parece que los perftools no se convierten las direcciones de funcionar nombres.
¿Alguien sabe lo que me falta aquí? ¿Qué debo hacer para que el generador de perfiles genere el resultado correcto?
EDITAR: Más información: no es un problema de pprof o google-perftools, sino más bien algo como gcc o macosx, porque Instrument.app también muestra direcciones en lugar de números de línea. No estoy familiarizado con el funcionamiento de los símbolos de depuración en Mac OS X, así que preferiría pensar que me falta algo aquí, en lugar de ser un error en gcc o Mac OS X. Me pregunto si alguien puede dar pistas sobre cómo funciona la información de depuración. para Mac OS X.
"Estoy probando el perfil de algunos programas en C++" Entonces, ¿por qué etiqueta esta pregunta como C? –
Este problema no es específico de C++ sino también de C. –
No estoy familiarizado con el desarrollo de OS X ni el googleperf, pero en He utilizado las librerías de creación de perfiles antes, y además del indicador -g para la depuración, tuvimos que agregue el indicador -p al compilador y al enlazador para obtener detalles sobre el perfil. – fduff