libWhy дает ли санированная адресом сборка библиотеки C ++, которая не воспроизводит проблемы ASAN в классах libcxx?

При сборке с -fsanitize = address я иногда вижу проблемы доступа к памяти из классов libc ++.

Ошибки не кажутся повторяемыми от запуска к запуску и иногда вообще не происходят.

Что происходит? Как я могу предотвратить это?

1

Решение

«Если контейнеры libc ++ переходят от инструментального (перестроенного с помощью ASan) к неинструментированному коду, Address Sanitizer может сообщить о ложных срабатываниях переполнения контейнера».

Если ваша программа связывается с библиотеками, созданными с помощью libc ++ без ASAN, вам нужно определить _LIBCXX_HAS_NO_ASAN при строительстве.

Увидеть Почему XCode определяет _LIBCPP_HAS_NO_ASAN при создании очищенной по адресу сборки?

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector