Sto cercando di compilare e utilizzare una libreria C condivisa come modulo Python e sto osservando che a seconda del DYLD_LIBRARY_PATH
mio codice funziona o si blocca con un messaggio di errore criptico.
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
Ho provato a controllare manualmente quali librerie sono comuni tra /usr/lib
e /usr/local/lib
e /opt/local/lib
ma non sono stato in grado di trovare la causa dell'incidente. Un modo per capire la causa del problema sarà capire quali dylib
file usano i due processi? Non sono riuscito a immaginarlo usando opensnoop
o dtruss
ma forse stavo usando quegli strumenti sbagliati.
Come posso capire la causa di questo incidente?
NOTA BENE: ho pubblicato la stessa domanda su SO 2 giorni fa, dove non ha ricevuto risposte e solo 8 visualizzazioni.