Necesito saber cómo encontrar las fugas de memoria en una biblioteca compartida que se cargará en un archivo binario de publicación. Me refiero a la biblioteca compartida que construí con la opción -g pero el binario que carga la biblioteca compartida no está construido con la opción -g.valgrind - Buscar pérdida de memoria en una biblioteca compartida
Recibo el informe de fuga de la siguiente manera.
==739== at 0x4A05809: malloc (vg_replace_malloc.c:149)
==739== by 0x84781B1: ???
==739== by 0x87507F5: ???
==739== by 0x874CF47: ???
==739== by 0x874E657: ???
==739== by 0x874F7C2: ???
==739== by 0x8779C0C: ???
Hágame saber cómo obtener el rastro de pila de la fuga de la biblioteca compartida?
Había un parche que proporcionaba una opción para desactivar la descarga de símbolos después de dlclose. El parche funciona y lo he usado muchas veces. Pero el parche estaba en la versión anterior y creo que ahora está podrido. https://bugs.kde.org/show_bug.cgi?id=79362 – k0n3ru
@TomH: Permítanme señalar que la solución alternativa "omit dlclose" puede generar muchos falsos positivos. Si hay objetos en la pila que destruyen elementos, que estaban en el montón, entonces estos se mostraron en la salida como fugas, porque dcloto habría hecho la destrucción en primer lugar. – newhouse
Y el segundo no funciona tan bien, si valgrind es de 64 bits, pero depura 32 – newhouse