Sto cercando di compilare e usare una libreria C condivisa come un modulo python e sto osservando che a seconda del DYLD_LIBRARY_PATH
il 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 dello schianto. Un modo per capire la causa del problema sarà capire quali file di dylib
utilizzano i due processi? Non ero in grado di capirlo usando opensnoop
o dtruss
ma forse stavo usando quegli strumenti sbagliati.
Come posso capire la causa di questo incidente?
ESCLUSIONE DI RESPONSABILITÀ: Ho postato la stessa domanda su SO 2 giorni fa, dove non ha ricevuto eventuali risposte e solo 8 visualizzazioni.