/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 size
nie 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 /Gs0
przypadku 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 /Gs4096
przypadku 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 . /Gs
check_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
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).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
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: AdditionalOptions.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC