Пытаясь использовать инструмент AddressSanitizer (ASan) в моем проекте C ++, я получаю очень подробный вывод, полный undefined reference to '__asan_report_store8'
и undefined reference to '__asan_report_load8'
и других, таких как __asan_stack_malloc_2
. Мой проект построен с использованием CMake, и я добавил следующую строку в мой CMakeLists.txt:
add_definitions(-fsanitize=address -g3 -fno-omit-frame-pointer)
после этих примеров ASan:
Запустив приведенный выше пример с make-файлом, я получаю ожидаемый симпатичный вывод (который также можно увидеть в ссылке на видео). Но для моего проекта я получаю грязный след от этих ошибок.
Примечания:
- Ubuntu 16.04
- Я установил переменные окружения
ASAN_OPTIONS=symbolize=1
и ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-5.0/bin/llvm-symbolizer
, чтобы печатать номера строк в выводе ASan