Чтобы иметь возможность отлаживать и фаззить весь дистрибутив Linux, я хотел бы установить ASAN (AddressSanitizer, https://en.wikipedia.org/wiki/AddressSanitizer) в качестве опции по умолчанию для gcc. Поэтому обычно для достижения того, чего я хочу, обычно я устанавливаю следующие переменные перед компиляцией пакета Linux:
CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g"
CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g"
LDFLAGS="-fsanitize=address,undefined"
и попробуйте скомпилировать и запустить мой код. Я хотел бы, чтобы он по умолчанию был gcc.
Одним из способов сделать это является использование спецификационных файлов: https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html. Однако я не нашел способа установить «все правила» для компиляции и компоновки всего моего кода c/c++ с помощью AddressSanitizer.
Мои вопросы:
- Любой пример, как это сделать, используя файлы спецификаций?
- Это лучший способ сделать это?
- Любой другой альтернативный подход?