Я пытаюсь скомпилировать и использовать общую библиотеку C в качестве модуля Python, и я наблюдаю, что в зависимости от того, DYLD_LIBRARY_PATH
работает ли мой код, или он вылетает с загадочным сообщением об ошибке.
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
Я попытался вручную проверить, какие библиотеки являются общими между /usr/lib
и /usr/local/lib
и /opt/local/lib
, но мне не удалось найти причину сбоя. Одним из способов выяснить причину проблемы будет выяснить, какие файлы dylib
используются двумя процессами? Я не смог понять это с помощью opensnoop
или dtruss
, но, возможно, я использовал эти инструменты неправильно.
Как я могу выяснить причину этого сбоя?