/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.

La /fsanitize-address-use-after-return opción del compilador permite la compatibilidad experimental para detectar problemas de seguridad de memoria derivados del uso de una variable que tiene ámbito izquierdo. Esto requiere que la opción ASAN_OPTIONS=detect_stack_use_after_return=1 en tiempo de ejecución de ASan también esté establecida y incurre en una penalización de rendimiento adicional. Para obtener más información, vea Error: stack-use-after-return.

Las /fno-sanitize-address-vcasan-libopciones del compilador , /fsanitize-address-asan-compat-liby /fno-sanitize-address-asan-compat-liby las opciones/INFERASANLIBS del enlazador (Usar bibliotecas de saneamiento inferido) y /INFERASANLIBS:NO 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