Estoy tratando de compilar y usar una biblioteca de C compartida como un módulo de python y observo que, dependiendo del DYLD_LIBRARY_PATH
de mi código, funciona o falla con un mensaje de error críptico.
Jul 24 02:44:44 master
$ DYLD_LIBRARY_PATH=/opt/local/lib python -c 'import opengm'
OKAY
Jul 24 02:45:41 master
$ DYLD_LIBRARY_PATH= python -c 'import opengm'
python(86214,0x7fff70ccdcc0) malloc: *** error for object 0x7fff70177500: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap
He intentado inspeccionar manualmente qué bibliotecas son comunes entre /usr/lib
y /usr/local/lib
y /opt/local/lib
pero no he podido encontrar la causa del bloqueo. Una forma de descubrir la causa del problema será averiguar qué archivos dylib
utilizan los dos procesos. No pude calcular esto usando opensnoop
o dtruss
, pero tal vez estaba usando mal esas herramientas.
¿Cómo puedo averiguar la causa de este accidente?
DESCARGO DE RESPONSABILIDAD: publiqué esta misma pregunta en SO hace 2 días, donde no se recibió Cualquier respuesta y solo 8 visitas.