/sdl (Włącz dodatkowe kontrole zabezpieczeń)
Dodaje zalecaną kontroli bezpieczeństwa rozwoju cyklu życia SDL ().Te sprawdzenia obejmują bardzo związanych z zabezpieczeniami ostrzeżenia jako błędy i funkcje dodatkowe bezpiecznego generowania kodu.
/sdl[-]
Uwagi
/sdl Umożliwia podzbiorem kontroli bezpieczeństwa podstawy udostępnione przez /GS i zastępuje /GS-.Domyślnie /sdl jest wyłączona./sdl- Wyłącza sprawdzanie dodatkowych zabezpieczeń.
Sprawdza kompilacji
/sdl Włącza te ostrzeżenia jako błędy:
Ostrzeżenie włączone przez /sdl |
Odpowiednik przełącznika wiersza polecenia |
Opis |
---|---|---|
/we4146 |
Jednoargumentowa operacja odejmowania operator została zastosowana do typu bez znaku, co spowoduje wynik niepodpisanych. |
|
/we4308 |
Ujemna stałą przekonwertować typu bez znaku, co w wyniku prawdopodobnie znaczenia. |
|
/we4532 |
Korzystanie z continue, break lub goto słów kluczowych w __finally/finally bloku jest niezdefiniowana zachowanie podczas przerwania pracy. |
|
/we4533 |
Inicjowanie zmienną kod nie zostaną wykonane. |
|
/we4700 |
Korzystanie z niezainicjowaną zmienną lokalnego. |
|
/we4703 |
Korzystanie z zmienną potencjalnie niezainicjowanego wskaźnika lokalnego. |
|
/we4789 |
Przepełnienie w przypadku określonych funkcji w czasie wykonywania (CRT) C buforu. |
|
/we4995 |
Korzystanie z funkcji oznaczona za pomocą dyrektywę pragma przestarzałe. |
|
/we4996 |
Korzystanie z funkcji oznaczona jako przestarzałe. |
Środowisko wykonawcze kontroli
Gdy /sdl jest włączony, kompilator generuje kod w celu wykonania tych testów w czasie wykonywania:
Włącza tryb ścisłych /GS wykrywania przekroczenie buforu w czasie wykonywania, odpowiednikiem kompilacji z #pragma strict_gs_check(push, on).
Wykonuje ograniczone wskaźnik sanitization.W wyrażeniach, które nie wymagają dereferences i w typów, których nie destruktora zdefiniowanej przez użytkownika, wskaźnik odwołania są ustawione-prawidłowy adres po wywołaniu delete.Pozwala to zapobiec ponownemu starych wskaźnik odwołania.
Wykonuje klasy inicjowania elementu członkowskiego.Automatycznie inicjuje wszystkie elementy klas na zero dla wystąpienia obiektu (przed uruchomieniem Konstruktora).Pozwala to uniemożliwiać niezainicjowany dane skojarzone z składowych klasy, które nie jawnie zainicjować konstruktora.
Uwagi
Aby uzyskać więcej informacji, zobacz ostrzeżenia /sdl i poprawy niezainicjowany wykrywania zmiennej.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz projekt stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Porady: otwieranie stron właściwości projektów.
Wybierz C/C++ folder.
Na Ogólne strony, wybierz opcję z kontroli SDL listy rozwijanej.