/fsanitize
(启用擦除器)
使用 /fsanitize
编译器选项启用擦除器。
语法
/fsanitize=address
/fsanitize=fuzzer
/fsanitize-address-use-after-return
/fno-sanitize-address-vcasan-lib
备注
/fsanitize=address
编译器选项可启用 AddressSanitizer,它是一项功能强大的编译器和运行时技术,能够发现难以查找的 bug。 从 Visual Studio 2019 版本 16.9 开始,提供对 /fsanitize=address
选项的支持。
/fsanitize=fuzzer
编译器选项提供对 LibFuzzer 的试验性支持。 LibFuzzer 是覆盖引导模糊测试库,可用于查找由用户提供的输入导致的 bug 和崩溃。 建议将 /fsanitize=address
与 LibFuzzer 一起使用。 此选项对 OneFuzz 等模糊测试工具十分有用。 有关详细信息,请参阅 OneFuzz 文档和 OneFuzz GitHub 项目。 从 Visual Studio 2022 版本 17.0 开始,提供对 /fsanitize=fuzzer
选项的支持。
/fsanitize
选项不允许使用逗号分隔的语法,例如:/fsanitize=address,fuzzer
。 必须单独指定这些选项。
/fsanitize-address-use-after-return
和 /fno-sanitize-address-vcasan-lib
编译器选项以及 /INFERASANLIBS
(使用推导出的擦除器库)和 /INFERASANLIBS:NO
链接器选项可为高级用户提供支持。 有关详细信息,请参阅 AddressSanitizer 生成和语言参考。
在 Visual Studio 开发环境中设置 /fsanitize=address
编译器选项
打开项目的“属性页”对话框。
选择“配置属性”>“C/C++”>“常规”属性页。
修改“启用地址擦除器”属性。 若要启用它,请选择“是(/fsanitize=address)”。
选择“确定”或“应用”以保存更改。
在 Visual Studio 开发环境中设置 /fsanitize=fuzzer
编译器选项
打开项目的“属性页”对话框。
选择“配置属性”>“C/C++”>“常规”属性页。
修改“启用模糊测试工具”属性。 若要启用它,请选择“是(/fsanitize=fuzzer)”。
选择“确定”或“应用”以保存更改。
设置高级编译器选项
打开项目的“属性页”对话框。
选择“配置属性”>“C/C++”>“命令行”属性页。
修改“附加选项”属性以设置 /fsanitize-address-use-after-return 或 /fno-sanitize-address-vcasan-lib。
选择“确定”或“应用”以保存更改。
以编程方式设置此编译器选项
- 请参阅 AdditionalOptions。
另请参阅
MSVC 编译器选项
MSVC 编译器命令行语法
/INFERASANLIBS
(使用推导出的擦除器库)
/fsanitize-coverage
(配置擦除器覆盖率)
AddressSanitizer 概述
AddressSanitizer 已知问题
AddressSanitizer 生成和语言参考