/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
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.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
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
- Consulte AdditionalOptions.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC