Clang编译时`-fsanitize-address-outline-instrumentation`参数未被识别问题咨询
关于
-fsanitize-address-outline-instrumentation参数被忽略的原因及解决办法 - 版本不兼容:
-fsanitize-address-outline-instrumentation是Clang 16版本才新增的AddressSanitizer专用选项,你当前使用的Ubuntu clang 15.0.7并不支持该参数,因此编译器会直接忽略它并抛出未使用参数的警告。 - 缺少基础ASan启用参数:就算版本达标,这个标志是AddressSanitizer的子选项,必须先通过
-fsanitize=address启用AddressSanitizer核心功能,单独使用该子选项也会被判定为无效参数。
解决办法
- 升级Clang版本到16或更高:可以通过Ubuntu官方软件源或LLVM官方提供的源来安装新版编译器。
- 使用正确的编译命令:升级完成后,编译时需要同时启用AddressSanitizer和该子选项,命令示例:
clang main.c -o main -fsanitize=address -fsanitize-address-outline-instrumentation
内容的提问来源于stack exchange,提问作者Łukasz Przeniosło
相关产品推荐
相关产品推荐

