Sdílet prostřednictvím


/sdl (Povolit další kontroly zabezpečení)

Přidá doporučené kontrol zabezpečení vývoj životního cyklu SDL ().Tyto kontroly zahrnují velmi užitečné pro zabezpečení upozornění jako chyby a funkce další zabezpečené generování kódu.

/sdl[-]

Poznámky

/sdl Umožňuje nadmnožinou kontrol zabezpečení standardních hodnot poskytované /GS a přepíše /GS-.Ve výchozím nastavení /sdl je vypnuta./sdl- Zakáže kontroly další zabezpečení.

Kompilaci kontroly

/sdl umožňuje tyto upozornění jako chyby:

Upozornění ve /sdl povoleno

Ekvivalentní přepínač příkazového řádku

Popis

C4146

/we4146

Unární operátor minus operátor byla použita k typu bez znaménka, výsledkem výsledek bez znaménka.

C4308

/we4308

Záporná integrální konstanta převést na typ bez znaménka, výsledkem jsou pravděpodobně bezvýznamnému výsledek.

C4532

/we4532

Použití continue, break nebo goto klíčová slova v __finally/finally bloku má nedefinována chování při nestandardního ukončení.

C4533

/we4533

Kód inicializace proměnnou nebude provedeno.

C4700

/we4700

Používání Neinicializovaný místní proměnné.

C4703

/we4703

Používání potenciálně Neinicializovaný ukazatel místní proměnné.

C4789

/we4789

Přetečení při konkrétní funkce C Runtime (CRT) se používají vyrovnávací paměti.

C4995

/we4995

Použití funkce označena pragma nepoužívané.

C4996

/we4996

Použití funkce označen jako nepoužívané.

Modul runtime kontroly

Při /sdl je povolen, kompilátor vygeneruje kód, který má provádět tyto kontroly v době běhu:

  • Umožňuje přísné režim /GS detekce přetečení vyrovnávací paměti běhu, ekvivalentní kompilaci s #pragma strict_gs_check(push, on).

  • Provede sanitization omezenou ukazatel.Ve výrazech, které nezahrnují dereferences a v typy, které mají žádné uživatelem definované destruktor, ukazatel odkazy jsou nastaveny na-platnou adresu po volání delete.To pomáhá zabránit opakované použití zastaralá ukazatel odkazů.

  • Provede inicializaci třídy člena.Automaticky inicializuje všechny členy třídy na nulu při vytváření instance objektu (před spouští konstruktoru).To pomáhá zabránit použití Neinicializovaný data související s členy třídy, které konstruktoru nebude se inicializovat explicitně.

Poznámky

Další informace naleznete v tématu upozornění, /sdl a zlepšení Neinicializovaný proměnné detekce.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete projektu stránky vlastností dialogového okna.Podrobnosti naleznete v tématu Postupy: Otevření stránek vlastností projektu.

  2. Vyberte C/C++ složky.

  3. Na Obecné stránky, vyberte možnost z SDL kontroly z rozevíracího seznamu.

Viz také

Referenční dokumentace

Možnosti kompilátoru

Nastavení možností kompilátoru