Partilhar via


/Gs (Controle de chamadas de verificação de pilha)

Controla o limite de investigações de pilha.

Sintaxe

/Gs[size]

Argumentos

size
(Opcional) O número de bytes que as variáveis locais podem ocupar antes que uma sonda de pilha seja iniciada. Nenhum espaço em branco é permitido entre /Gs e size.

Comentários

Uma investigação de pilha é uma sequência de códigos que o compilador insere no início de uma chamada de função. Quando iniciado, um teste de pilha atinge benignamente a memória pela quantidade de espaço necessária para armazenar as variáveis locais da função. Esse teste faz com que o sistema operacional imprima de forma transparente mais memória de pilha, se necessário, antes que o restante da função seja executado.

Por padrão, o compilador gera o código que inicia uma sonda de pilha quando uma função exige mais de uma página de espaço de pilha. Esse padrão é equivalente a uma opção de compilador de /Gs4096 para plataformas x86, x64, ARM e ARM64. Esse valor permite que um aplicativo e o gerenciador de memória do Windows aumentem a quantidade de memória confirmada dinamicamente para a pilha do programa no tempo de execução.

Observação

O valor padrão de permite que a pilha de programas de aplicativos para Windows cresça corretamente em tempo de /Gs4096 execução. Recomendamos que o valor padrão não seja alterado a menos que você saiba exatamente por que deve alterá-lo.

Alguns programas — por exemplo, drivers de dispositivos virtuais — não exigem esse mecanismo padrão de crescimento de pilha. Nesses casos, os testes de pilha não são necessários e você pode impedir que o compilador os gere definindo size um valor maior do que qualquer função requer para o armazenamento de variáveis locais.

/Gs0 inicia testes de pilha para cada chamada de função que requer armazenamento para variáveis locais. Esse valor pode ter um impacto negativo no desempenho.

Para destinos x64, se você especificar a opção sem um size argumento, ela será igual a ./Gs/Gs0 Se o argumento for de 1 a 9, o compilador emitirá o aviso D9014 e o efeito será o size mesmo que especificar /Gs0.

Para destinos x86, ARM e ARM64, a opção sem um size argumento é a /Gs mesma que /Gs4096. Se o argumento for de 1 a 9, o compilador emitirá o aviso D9014 e o efeito será o size mesmo que especificar /Gs4096.

Para todos os destinos, um size argumento entre 10 e 2147483647 define o limite no valor especificado. A size de 2147483648 ou maior causa erro fatal C1049.

Você pode ativar ou desativar os testes de pilha usando a check_stack diretiva. /Gs e o pragma não tem efeito sobre as rotinas padrão da biblioteca C, eles afetam apenas as check_stack funções que você compila.

Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Insira a opção do compilador /Gs e um tamanho opcional em Opções Adicionais. Escolha OK ou Aplicar para salvar as alterações.

Para definir essa opção do compilador via programação

Confira também

Opções do compilador MSVC
Sintaxe de linha de comando do compilador MSVC