/Gs (Steruj wywołaniami sprawdzania stosu)

Steruje progiem sond stosu.

Składnia

/Gs[size]

Argumenty

size
(Opcjonalnie) Liczba bajtów, które mogą zajmować zmienne lokalne przed zainicjowaniem sondy stosu. Odstęp między znakami /Gs i sizenie jest dozwolony.

Uwagi

Sonda stosu to sekwencja kodu wstawionego przez kompilator na początku wywołania funkcji. Po zainicjowaniu sonda stosu osiąga łagodnie w pamięci ilość miejsca wymaganego do przechowywania zmiennych lokalnych funkcji. Ta sonda powoduje, że system operacyjny ma przezroczystą stronę w większej ilości pamięci stosu, jeśli jest to konieczne, przed uruchomieniem pozostałej części funkcji.

Domyślnie kompilator generuje kod, który inicjuje sondę stosu, gdy funkcja wymaga więcej niż jednej strony miejsca na stosie. To ustawienie domyślne jest równoważne opcji kompilatora /Gs4096 dla platform x86, x64, ARM i ARM64. Ta wartość umożliwia aplikacji i menedżerowi pamięci systemu Windows dynamiczne zwiększenie ilości pamięci zatwierdzonej do stosu programu w czasie wykonywania.

Uwaga

Wartość domyślna umożliwia /Gs4096 poprawne zwiększanie stosu programów aplikacji dla systemu Windows w czasie wykonywania. Zalecamy, aby nie zmieniać wartości domyślnej, chyba że wiesz dokładnie, dlaczego trzeba ją zmienić.

Niektóre programy — na przykład sterowniki urządzeń wirtualnych — nie wymagają tego domyślnego mechanizmu zwiększania stosu. W takich przypadkach sondy stosu nie są konieczne i można zatrzymać generowanie ich przez kompilator, ustawiając size wartość większą niż jakakolwiek funkcja wymagana dla magazynu zmiennych lokalnych.

/Gs0 Inicjuje sondy stosu dla każdego wywołania funkcji, które wymaga magazynu dla zmiennych lokalnych. Ta wartość może mieć negatywny wpływ na wydajność.

W przypadku obiektów docelowych x64, jeśli określisz /Gs opcję bez argumentu size , jest ona taka sama jak /Gs0. size Jeśli argument ma wartość od 1 do 9, kompilator emituje ostrzeżenie D9014, a efekt jest taki sam jak w /Gs0przypadku określenia .

W przypadku obiektów docelowych /Gs x86, ARM i ARM64 opcja bez argumentu size jest taka sama jak /Gs4096. size Jeśli argument ma wartość od 1 do 9, kompilator emituje ostrzeżenie D9014, a efekt jest taki sam jak w /Gs4096przypadku określenia .

Dla wszystkich obiektów docelowych size argument z zakresu od 10 do 2147483647 ustawia próg przy określonej wartości. Wartość size 2147483648 lub większa powoduje błąd krytyczny C1049.

Sondy stosu można włączać lub wyłączać przy użyciu check_stack dyrektywy . /Gscheck_stack i pragma nie mają wpływu na standardowe procedury biblioteki języka C; mają wpływ tylko na skompilowane funkcje.

Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio

  1. Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. Wprowadź /Gs opcji kompilatora i opcjonalny rozmiar w opcje dodatkowe. Wybierz przycisk OK lub Zastosuj , aby zapisać zmiany.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC