Compartir a través de


/fsanitize (Habilitar los correctores)

Use las opciones del compilador /fsanitize para habilitar los correctores.

Sintaxis

/fsanitize=address
/fsanitize=kernel-address
/fsanitize=fuzzer
/fsanitize-address-use-after-return
/fno-sanitize-address-vcasan-lib /fsanitize-address-asan-compat-lib /fno-sanitize-address-asan-compat-lib

Comentarios

La opción del compilador /fsanitize=address habilita AddressSanitizer, una poderosa tecnología de compilador y entorno de ejecución para descubrir errores difíciles de encontrar. La compatibilidad con la opción /fsanitize=address está disponible a partir de la versión 16.9 de Visual Studio 2019.

La /fsanitize=kernel-address opción del compilador habilita el kernel AddressSanitizer (KASan). KASan es la variante en modo kernel de AddressSanitizer, disponible a partir de Visual Studio 2022, versión 17.11. KASan solo se admite en Windows 11 24H2 o Windows Server 2025 y versiones posteriores, y requiere la compilación con windows SDK 10.0.26100.2161 y versiones posteriores. La compilación con KASan también implica la /fsanitize-address-asan-compat-lib opción del compilador.

La opción del compilador /fsanitize=fuzzer habilita la compatibilidad experimental con LibFuzzer. LibFuzzer es una biblioteca de aproximación guiada por la cobertura que se puede usar para buscar errores y bloqueos causados por la entrada proporcionada por el usuario. Se recomienda usar /fsanitize=address con LibFuzzer. Esta opción es útil para herramientas de aproximación, como OneFuzz. Para más información, consulte la documentación de OneFuzz y el proyecto de GitHub de OneFuzz. La compatibilidad con la opción /fsanitize=fuzzer está disponible a partir de la versión 17.0 de Visual Studio 2022.

La opción /fsanitize no permite la sintaxis separada por comas, por ejemplo, /fsanitize=address,fuzzer. Estas opciones deben especificarse individualmente.

Las /fsanitize-address-use-after-returnopciones del compilador , /fno-sanitize-address-vcasan-lib, /fsanitize-address-asan-compat-liby /fno-sanitize-address-asan-compat-lib las opciones /INFERASANLIBS del enlazador (Usar bibliotecas de sanitizador inferido) y /INFERASANLIBS:NO las opciones del enlazador ofrecen compatibilidad con usuarios avanzados. Para más información, vea Referencia de lenguaje y compilación de AddressSanitizer.

Para establecer la opción del compilador /fsanitize=address en el entorno de desarrollo de Visual Studio, siga estos pasos:

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>General.

  3. Modifique la propiedad Enable AddressSanitizer . Para habilitarla, elija Sí (/fsanitize=address).

  4. Haga clic en Aceptar o en Aplicar para guardar los cambios.

Para establecer la opción del compilador /fsanitize=fuzzer en el entorno de desarrollo de Visual Studio, siga estos pasos:

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>General.

  3. Modifique la propiedad Habilitar herramienta de aproximación. Para habilitarla, elija Sí (/fsanitize=fuzzer).

  4. Haga clic en Aceptar o en Aplicar para guardar los cambios.

Para establecer las opciones avanzadas del compilador, siga estos pasos:

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

  3. Modifique la propiedad Opciones adicionales para establecer /fsanitize-address-use-after-return o /fno-sanitize-address-vcasan-lib.

  4. Haga clic en Aceptar o en Aplicar para guardar los cambios.

Para establecer esta opción del compilador mediante programación

Consulte también

Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC
/INFERASANLIBS (Usar bibliotecas de correctores inferidas)
/fsanitize-coverage (configuración de la cobertura de AddressSanitizer)
Introducción a AddressSanitizer
Problemas conocidos de AddressSanitizer
Referencia de lenguaje y compilación de AddressSanitizer