Dela via


/fsanitize (Aktivera sanitizers)

Använd kompilatoralternativen /fsanitize för att aktivera sanitizers.

Syntax

/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

Anmärkningar

Med /fsanitize=address kompileringsalternativet kan AddressSanitizer, en kraftfull kompilator och körningsteknik, upptäcka buggar som är svåra att hitta. Stöd för alternativet /fsanitize=address är tillgängligt från och med Visual Studio 2019 version 16.9.

Kompilatoralternativet /fsanitize=kernel-address aktiverar Kernel AddressSanitizer (KASan). KASan är varianten i kernelläge av AddressSanitizer, som är tillgänglig från och med Visual Studio 2022 version 17.11. KASan stöds endast på Windows 11 24H2 eller Windows Server 2025 och senare och kräver att du skapar med hjälp av Windows SDK 10.0.26100.2161 och senare. Att skapa med KASan innebär också kompilatoralternativet /fsanitize-address-asan-compat-lib .

Kompileringsalternativet /fsanitize=fuzzer möjliggör experimentellt stöd för LibFuzzer. LibFuzzer är ett täckningsstyrt fuzzing-bibliotek som kan användas för att hitta buggar och krascher som orsakas av användarindata. Vi rekommenderar att du använder /fsanitize=address med LibFuzzer. Det här alternativet är användbart för fuzzing-verktyg som OneFuzz. Mer information finns i OneFuzz-dokumentationen och OneFuzz GitHub-projektet. Stöd för alternativet /fsanitize=fuzzer är tillgängligt från och med Visual Studio 2022 version 17.0.

Alternativet /fsanitize tillåter inte kommaavgränsad syntax, till exempel: /fsanitize=address,fuzzer. Dessa alternativ måste anges individuellt.

Alternativen /fsanitize-address-use-after-return, /fno-sanitize-address-vcasan-lib, /fsanitize-address-asan-compat-lib, och /fno-sanitize-address-asan-compat-lib kompilatorn samt /INFERASANLIBS alternativen (Använd uppskjuten sanitizer libs) och /INFERASANLIBS:NO linker har stöd för avancerade användare. Mer information finns i AddressSanitizer build and language reference ( AddressSanitizer build and language reference).

Så här ställer du in /fsanitize=address kompilatoralternativet i Visual Studio-utvecklingsmiljön

  1. Öppna dialogrutan Egenskapssidor för projektet.

  2. Välj egenskapssidan Konfigurationsegenskaper>C/C++>Allmänt .

  3. Ändra egenskapen Aktivera AddressSanitizer . Om du vill aktivera den väljer du Ja (/fsanitize=adress).

  4. Välj OK eller Använd för att spara ändringarna.

Så här ställer du in /fsanitize=fuzzer kompilatoralternativet i Visual Studio-utvecklingsmiljön

  1. Öppna dialogrutan Egenskapssidor för projektet.

  2. Välj egenskapssidan Konfigurationsegenskaper>C/C++>Allmänt .

  3. Ändra egenskapen Aktivera Fuzzer . Om du vill aktivera det väljer du Ja (/fsanitize=fuzzer).

  4. Välj OK eller Använd för att spara ändringarna.

Så här ställer du in avancerade kompilatoralternativ

  1. Öppna dialogrutan Egenskapssidor för projektet.

  2. Välj egenskapssidan Konfigurationsegenskaper>C/C++>Kommandorad .

  3. Ändra egenskapen Ytterligare alternativ för att ange /fsanitize-address-use-after-return eller /fno-sanitize-address-vcasan-lib.

  4. Välj OK eller Använd för att spara ändringarna.

Så här ställer du in det här kompilatoralternativet programmatiskt

Se även

MSVC-kompilatoralternativ
kommandoradssyntax för MSVC-kompilatorn
/INFERASANLIBS (Använd härledda sanitizer libs)
/fsanitize-coverage (Konfigurera sanitizer-täckning)
Översikt över AddressSanitizer
AddressSanitizer kända problem
AddressSanitizer- och språkreferens