Поделиться через


/Gs (Вызовы проверки стека управления)

Управляет пороговым значением для проб стека.

Синтаксис

/Gs[size]

Аргументы

size
(Необязательно) Число байтов, которое могут занимать локальные переменные перед инициацией стекового зонда. Пробелы между /Gs и sizeне разрешены.

Замечания

Проба стека — это последовательность кода, который компилятор вставляет в начале вызова функции. При запуске проба стека достигает доброкачественно в память по объему места, необходимого для хранения локальных переменных функции. Эта проба приводит к прозрачной странице операционной системы в большей памяти стека при необходимости до выполнения остальной части функции.

По умолчанию компилятор создает код, который активирует стековый зонд, если функции требуется более одной страницы стека. Этот параметр по умолчанию эквивалентен параметру компилятора /Gs4096 для платформ x86, x64, ARM и ARM64. Это значение позволяет приложению и диспетчеру памяти Windows динамически увеличивать количество памяти, выделенной стеку программы, во время выполнения.

Примечание.

Значение /Gs4096 по умолчанию позволяет стеку программ приложений для Windows правильно расти во время выполнения. Мы рекомендуем не изменять значение по умолчанию, если вы не уверены, что это необходимо.

Некоторые программы, например драйверы виртуальных устройств, не требуют этого механизма стека по умолчанию. В таких случаях пробы стека не нужны, и вы можете остановить создание компилятора, задав size значение, которое больше любой функции, необходимой для локального хранилища переменных.

/Gs0 инициирует пробы стека для каждого вызова функции, требующего хранения для локальных переменных. Это значение может негативно повлиять на производительность.

Для целевых объектов x64, если указать /Gs параметр без аргумента size , это то же самое, что /Gs0и для целевых объектов x64. size Если аргумент равен 1–9, компилятор выдает предупреждение D9014, а эффект совпадает с указанием/Gs0.

Для целевых объектов /Gs x86, ARM и ARM64 параметр без аргумента size совпадает /Gs4096. size Если аргумент равен 1–9, компилятор выдает предупреждение D9014, а эффект совпадает с указанием/Gs4096.

Для всех целевых объектов size аргумент от 10 до 2147483647 задает пороговое значение по указанному значению. Значение size 2147483648 или больше приводит к неустранимой ошибке C1049.

Вы можете включить или отключить пробы стека с помощью директивы check_stack . /Gscheck_stack и pragma не влияют на стандартные подпрограммы библиотекИ C; они влияют только на скомпилирующиеся функции.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. Введите параметр компилятора /Gs и необязательный размер в разделе "Дополнительные параметры". Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.

Установка данного параметра компилятора программным способом

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC