/Gs
(Control de llamadas de comprobación de pila)
Controla el umbral de los sondeos de pila.
Sintaxis
/Gs
[size
]
Argumentos
size
(Opcional) Número de bytes que pueden ocupar las variables locales antes de que se inicie un sondeo de pila. No se permite ningún espacio en blanco entre /Gs
y size
.
Comentarios
Un sondeo de pila es una secuencia de código que el compilador inserta al principio de una llamada de función. Cuando se inicia, un sondeo de pila llega inofensivomente a la memoria por la cantidad de espacio necesario para almacenar las variables locales de la función. Este sondeo hace que el sistema operativo se pagina de forma transparente en más memoria de pila si es necesario, antes de que se ejecute el resto de la función.
De forma predeterminada, el compilador genera código que inicia un sondeo de pila cuando una función requiere más de una página de espacio de pila. Este valor predeterminado es equivalente a una opción del compilador de /Gs4096
para plataformas x86, x64, ARM y ARM64. Este valor permite a una aplicación y al administrador de memoria de Windows aumentar la cantidad de memoria asignada dinámicamente a la pila del programa en tiempo de ejecución.
Nota:
El valor predeterminado de /Gs4096
permite que la pila de programas de aplicaciones para Windows crezca correctamente en tiempo de ejecución. Le recomendamos que no cambie el valor predeterminado, excepto si sabe exactamente por qué tiene que cambiarlo.
Algunos programas(por ejemplo, controladores de dispositivos virtuales) no requieren este mecanismo de crecimiento de pila predeterminado. En tales casos, los sondeos de pila no son necesarios y puede impedir que el compilador los genere estableciendo size
en un valor que sea mayor que cualquier función requiere para el almacenamiento de variables locales.
/Gs0
inicia sondeos de pila para cada llamada de función que requiere almacenamiento para variables locales. Este valor puede tener un impacto negativo en el rendimiento.
Para destinos x64, si especifica la /Gs
opción sin un size
argumento, es igual que /Gs0
. Si el size
argumento es de 1 a 9, el compilador emite la advertencia D9014 y el efecto es el mismo que especificar /Gs0
.
Para los destinos x86, ARM y ARM64, la /Gs
opción sin un size
argumento es la misma que /Gs4096
. Si el size
argumento es de 1 a 9, el compilador emite la advertencia D9014 y el efecto es el mismo que especificar /Gs4096
.
Para todos los destinos, un size
argumento entre 10 y 2147483647 establece el umbral en el valor especificado. Un size
de 2147483648 o mayor causa un error irrecuperable C1049.
Puede activar o desactivar sondeos de pila mediante la check_stack
directiva . /Gs
y la check_stack
pragma no tienen ningún efecto en las rutinas estándar de la biblioteca de C; afectan solo a las funciones que se compilan.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
Escriba la opción del compilador /Gs y un tamaño opcional en Opciones adicionales. Haga clic en Aceptar o en Aplicar para guardar los cambios.
Para establecer esta opción del compilador mediante programación
- Vea AdditionalOptions.
Consulte también
Opciones del compilador de MSVC
Sintaxis de línea de comandos del compilador de MSVC