Estoy tratando de perfilar una biblioteca compartida en GNU/Linux que hace procesamiento de audio en tiempo real, por lo que el rendimiento es importante. Ejecuto otro programa que lo conecta a la entrada y salida de audio de mi sistema, y lo perfilo con callgrind.¿Cómo obtengo callgrind para volcar información de línea de origen?
Mirando los resultados en KCacheGrind, obtengo gran información acerca de qué funciones están ocupando la mayor parte de mi tiempo. Sin embargo, no me deja ver la información de línea por línea, y en su lugar dice que necesito compilarla con símbolos de depuración y volver a ejecutar el perfil.
El programa que estoy perfilando no está compilado con símbolos de depuración, pero la biblioteca sí lo está. Y sé esto, porque curiosamente, las anotaciones de código fuente para cachegrind funcionan bien.
Cuando ejecuto callgrind, dice que el valor predeterminado es volcar la información de la línea fuente, pero simplemente no está haciendo eso. ¿Hay alguna manera de forzarlo o averiguar qué lo detiene?
Puede ser una pregunta estúpida, pero ¿puedes recompilar tu aplicación con símbolos de depuración? –