с флагом игнорирования ошибок одр. Добавил в окружение
ASAN_OPTIONS=detect_odr_violation=0, но при запуске он все равно продолжает валится, когда находит одр. Пробовал с креатора пересобирать, удалял руками папку сборки и пересобирал, безрезультатно. Есть какие идеи?
Запускаешь / собираешь с терминалки?
Не совсем понимаю вопрос, можно пожалуйста развернуть
Ты пишешь, что собираешь креатором. А если из консоли?
Проект на qmake?
можно попробавать не через окружение параметры передавать, а в main.cpp напиши следующее: #ifndef __has_feature // GCC does not have __has_feature... #define __has_feature(feature) 0 #endif #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) #ifdef __cplusplus extern "C" #endif const char *__asan_default_options() { return "detect_odr_violation=0"; } #endif
Поробовал, не сработало. Я добавлял переменную help=1 и он показывает, что текущее значение для detect_odr_violation стоит он, то есть сам асан игнорирует получается.
Походу надо ещё выставить use_odr_indicator
https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
Он стоит false по умолчанию
При запуске кого, и кто продолжает валиться ?
запуска графического приложения, Clang11
Т.е. ты собираешь своё приложение, запускаешь его, и после этого оно падает, так?
Обсуждают сегодня