/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 编译器选项

  1. 打开项目的“属性页”对话框。

  2. 选择“配置属性”>“C/C++”>“常规”属性页

  3. 修改“启用地址擦除器”属性。 若要启用它,请选择“是(/fsanitize=address)”。

  4. 选择“确定”或“应用”以保存更改。

在 Visual Studio 开发环境中设置 /fsanitize=fuzzer 编译器选项

  1. 打开项目的“属性页”对话框。

  2. 选择“配置属性”>“C/C++”>“常规”属性页

  3. 修改“启用模糊测试工具”属性。 若要启用它,请选择“是(/fsanitize=fuzzer)”。

  4. 选择“确定”或“应用”以保存更改。

设置高级编译器选项

  1. 打开项目的“属性页”对话框。

  2. 选择“配置属性”>“C/C++”>“命令行”属性页

  3. 修改“附加选项”属性以设置 /fsanitize-address-use-after-return 或 /fno-sanitize-address-vcasan-lib

  4. 选择“确定”或“应用”以保存更改。

以编程方式设置此编译器选项

另请参阅

MSVC 编译器选项
MSVC 编译器命令行语法
/INFERASANLIBS(使用推导出的擦除器库)
/fsanitize-coverage(配置擦除器覆盖率)
AddressSanitizer 概述
AddressSanitizer 已知问题
AddressSanitizer 生成和语言参考