Я пытаюсь скомпилировать и использовать общую библиотеку C как модуль python, и я наблюдаю, что в зависимости от DYLD_LIBRARY_PATH
мой код работает, или он сбой с криптовым сообщением об ошибке.Как найти, какая разделяемая библиотека загружается процессом на OSX?
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
, но, возможно, я использовал эти инструменты неправильно.
Как я могу выяснить причину этой аварии?
Я голосую, чтобы закрыть этот вопрос не по теме, так как он перекрестно отправил на более подходящем сайте Stack Exchange. В будущем, пожалуйста, публикуйте свой вопрос только на одном сайте Stack Exchange. Для получения дополнительной информации см. [Здесь] (http://meta.stackexchange.com/q/64068). (Http://apple.stackexchange.com/questions/247227/how-to-find-which-shared-library-is-loaded-by-a-process-on-osx). – Matt