Tengo un controlador de prueba vinculado a una biblioteca que escribí. La biblioteca usa autotools para que produzca un archivo (archivo .a) y una biblioteca dinámica (.so).Valgrind errors when linked with -static - Why?
Cuando vinculo mi controlador con 'g ++ -static', supuestamente enlazando con .a, valgrind se enciende quejándose repetidamente 'Salto condicional o movimiento depende de valor (es) sin inicializar'. La primera falla ocurre antes de main en __pthread_initialize_minimal.
Cuando establezco un enlace sin -estático, supuestamente enlazando con .so, no recibo ninguna queja de valgrind.
¿Alguien sabe por qué? ¿Valgrind simplemente no funciona con -estático?
ACTUALIZACIÓN: No puedo publicar incluso una versión pelado abajo de mi conductor ya que se vincula a una biblioteca muy grande que no podía posible recortar, pero noto que más simple de todos los programas
int main()
{
return 0;
}
da un error cuando se vincula con -static y se ejecuta desde valgrind:
==15449== Use of uninitialised value of size 8
==15449== at 0x40B0F3: exit (in /home/jdgordo/src/t)
debería haber incluido que estoy corriendo en 64 bits RedHat 5.5.
intente reducir el problema al código de código de líneas lo más posible y publicar aquí. – fazo
Hay muchas fallas y accesos directos en las distintas bibliotecas del sistema, por lo que no es raro ver las que aparecen en valgrind. Podría intentar ignorarlos sistemáticamente, supongo, o simplemente hacer las pruebas con la versión compartida. –
No veo esto en mi sistema. @KerrekSB - es correcto, no es realmente algo de lo que preocuparse y valgrind se envía con un archivo grande que suprime la mayoría de estos. Probablemente sea un poco incompatible con tu versión de libc/compilador en tu sistema de alguna manera. – Flexo