Estoy tratando de usar sprof para perfilar algún software (ossim) donde casi todo el código está en una biblioteca compartida. He generado un archivo de perfiles, pero cuando corro sprof, me sale el siguiente error:¿Qué está causando que sprof se queje de "inconsistencia detectada por ld.so"?
> sprof /home/eca7215/usr/lib/libossim.so.1 libossim.so.1.profile -p > log
Inconsistency detected by ld.so: dl-open.c: 612: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!
Las instrucciones que estaba siguiendo dicho que necesitaba versión de libc de al menos 2,5 a 34, tengo la versión 2.12 libc. 2 (Gentoo, kernel 2.6.36-r5).
No puedo encontrar ninguna explicación sobre lo que significa el error o (más interesante) cómo solucionarlo, los únicos resultados de google medio relevantes son para un error en una versión anterior de Skype.
Por lo que puedo decir, es un error en glibc, aparece si googleas RT_CONSISTENT y miras todas las entradas de redhat bugzilla. Estoy usando Oprofile en cambio ahora. – MattSmith
No sé si funciona, pero hay alguna información en esta respuesta sobre el uso de sprof para archivos .so: http://stackoverflow.com/questions/1838989/gprof-how-to-generate-call-graph-for-functions- in-shared-library-that-is-linke –