Как правильно предварительно загрузить библиотеки ASAN в macOS с помощью двоичного файла Java (библиотека JNI) с включенC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно предварительно загрузить библиотеки ASAN в macOS с помощью двоичного файла Java (библиотека JNI) с включен

Сообщение Anonymous »

У нас есть большая библиотека C++, для которой мы создали привязки Java с помощью SWIG (то есть общая библиотека JNI). Мы создаем и проводим тесты на многих платформах сборки: macOS, Linux и Windows; отладка и выбор; и ASAN.
У нас возникли проблемы с ASAN + Java, в частности, на некоторых компьютерах с macOS. С нашей штатной C++ библиотекой и ее тестами на всех операционных системах проблем не возникло. Мы разобрались со всеми флагами компилятора, флагами связывания и переменными среды выполнения, чтобы ASAN работал правильно.
Но с библиотекой JNI, связывающей Java (только в macOS), все по-другому. . Когда мы загружаем нашу связанную с ASAN библиотеку привязки и пытаемся использовать ее в Java в macOS, мы получаем следующую ошибку и процесс Java прерывается:

Код: Выделить всё

==36055==ERROR: Interceptors are not working. This may be because AddressSanitizer is loaded too late (e.g. via dlopen). Please launch the executable with:
DYLD_INSERT_LIBRARIES=/path/to/libclang_rt.asan_osx_dynamic.dylib
"interceptors not installed" && 0
Когда мы попытались сделать очевидное — запустить процесс Java с указанным DYLD_INSERT_LIBRARIES — он работал на наших локальных компьютерах разработчиков, но не на наших сборщиках. В ходе дальнейшего расследования мы определили, что на наших компьютерах разработчиков SIP (защита целостности системы) отключен, а на наших сборщиках SIP включен. Наша команда Infra сообщила нам, что отключение SIP невозможно, поэтому мы должны заставить эту работу работать с включенным SIP.
Как правильно заставить Java включить предварительно загрузить библиотеку ASAN в системы macOS с поддержкой SIP, чтобы предотвратить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ni-library
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»