Compartilhar via


/Gs (Controlar 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. Essa análise faz com que o sistema operacional pagine 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 do compilador para /Gs4096 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 /Gs4096 permite que a pilha de programas de aplicativos para Windows cresça corretamente em tempo de 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 dispositivo virtual, não exigem esse mecanismo padrão de crescimento de pilha. Nesses casos, as investigações de pilha não são necessárias e você pode impedir que o compilador as 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 /Gs opção sem um size argumento, será o mesmo que /Gs0. Se o size argumento for de 1 a 9, o compilador emitirá o aviso D9014 e o efeito será o mesmo que especificar /Gs0.

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

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

Você pode ativar ou desativar testes de pilha usando a check_stack diretiva. /Gs e o pragma check_stack não têm efeito nas rotinas padrão da biblioteca C; eles afetam apenas as 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 da linha de comando do compilador MSVC