为了能够调试和模糊整个 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。
我的问题是:
- 任何示例如何使用规范文件来做到这一点?
- 这是最好的方法吗?
- 还有其他替代方法吗?