Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare le opzioni del /fsanitize compilatore per abilitare i sanificatori.
Sintassi
/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
Osservazioni:
L'opzione /fsanitize=address del compilatore consente a AddressSanitizer, una potente tecnologia di compilatore e runtime di individuare bug difficili da trovare. Il supporto per l'opzione /fsanitize=address è disponibile a partire da Visual Studio 2019 versione 16.9.
L'opzione del compilatore abilita /fsanitize=kernel-addressThe compiler option enables Kernel AddressSanzer (KASan). KASan è la variante in modalità kernel di AddressSanitizer, disponibile a partire da Visual Studio 2022 versione 17.11. KASan è supportato solo in Windows 11 24H2 o Windows Server 2025 e versioni successive e richiede la compilazione con Windows SDK 10.0.26100.2161 e versioni successive. La compilazione con KASan implica anche l'opzione del /fsanitize-address-asan-compat-lib compilatore.
L'opzione /fsanitize=fuzzer del compilatore abilita il supporto sperimentale per LibFuzzer. LibFuzzer è una libreria di fuzzing guidata dalla copertura che può essere usata per trovare bug e arresti anomali causati dall'input fornito dall'utente. È consigliabile usare /fsanitize=address con LibFuzzer. Questa opzione è utile per gli strumenti fuzzing, ad esempio OneFuzz. Per altre informazioni, vedere la documentazione di OneFuzz e il progetto GitHub OneFuzz. Il supporto per l'opzione /fsanitize=fuzzer è disponibile a partire da Visual Studio 2022 versione 17.0.
L'opzione /fsanitize non consente la sintassi delimitata da virgole, ad esempio : /fsanitize=address,fuzzer. Queste opzioni devono essere specificate singolarmente.
L'opzione /fsanitize-address-use-after-return del compilatore abilita il supporto sperimentale per rilevare i problemi di sicurezza della memoria derivanti dall'uso di una variabile che ha lasciato l'ambito. Ciò richiede che sia impostata anche l'opzione ASAN_OPTIONS=detect_stack_use_after_return=1 di runtime ASan e che venga addebitata una riduzione delle prestazioni aggiuntiva. Per altre informazioni, vedere Errore: stack-use-after-return.
Le /fno-sanitize-address-vcasan-libopzioni del compilatore , /fsanitize-address-asan-compat-libe /fno-sanitize-address-asan-compat-lib le /INFERASANLIBS opzioni (Usare librerie di purificazione dedotti) e /INFERASANLIBS:NO linker offrono il supporto per gli utenti avanzati. Per altre informazioni, vedere Informazioni di riferimento sulla compilazione e sul linguaggio AddressSanitizer.
Per impostare l'opzione del /fsanitize=address compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto.
Selezionare la >Generale.
Modificare la proprietà Enable AddressSanitizer . Per abilitarla, scegliere Sì (/fsanitize=address).
Scegliere OK o Applica per salvare le modifiche.
Per impostare l'opzione del /fsanitize=fuzzer compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto.
Selezionare la >Generale.
Modificare la proprietà Enable Fuzzer . Per abilitarla, scegliere Sì (/fsanitize=fuzzer).
Scegliere OK o Applica per salvare le modifiche.
Per impostare le opzioni avanzate del compilatore
Aprire la finestra di dialogo Pagine delle proprietà del progetto.
Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.
Modificare la proprietà Opzioni aggiuntive per impostare /fsanitize-address-use-after-return o /fno-sanitize-address-vcasan-lib.
Scegliere OK o Applica per salvare le modifiche.
Per impostare l'opzione del compilatore a livello di codice
- Vedere AdditionalOptions.
Vedi anche
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC
/INFERASANLIBS (Usare librerie di purificazione dedotti)
/fsanitize-coverage (Configurare la copertura di sanificatore)
Panoramica di AddressSanitizer
Problemi noti di AddressSanitizer
Riferimento alla compilazione e al linguaggio AddressSanitizer