Udostępnij za pośrednictwem


/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

C4146

/we4146

Jednoargumentowa operacja odejmowania operator została zastosowana do typu bez znaku, co spowoduje wynik niepodpisanych.

C4308

/we4308

Ujemna stałą przekonwertować typu bez znaku, co w wyniku prawdopodobnie znaczenia.

C4532

/we4532

Korzystanie z continue, break lub goto słów kluczowych w __finally/finally bloku jest niezdefiniowana zachowanie podczas przerwania pracy.

C4533

/we4533

Inicjowanie zmienną kod nie zostaną wykonane.

C4700

/we4700

Korzystanie z niezainicjowaną zmienną lokalnego.

C4703

/we4703

Korzystanie z zmienną potencjalnie niezainicjowanego wskaźnika lokalnego.

C4789

/we4789

Przepełnienie w przypadku określonych funkcji w czasie wykonywania (CRT) C buforu.

C4995

/we4995

Korzystanie z funkcji oznaczona za pomocą dyrektywę pragma przestarzałe.

C4996

/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

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

  2. Wybierz C/C++ folder.

  3. Na Ogólne strony, wybierz opcję z kontroli SDL listy rozwijanej.

Zobacz też

Informacje

Opcje kompilatora

Ustawianie opcji kompilatora