/Gs (contrôler les appels de contrôle de pile)
Gère les tests de pile.
/Gs[size]
Arguments
- size
(Facultatif) Nombre d'octets que les variables locales peuvent occuper avant qu'une sonde de pile soit lancée. Si l'option /Gs est spécifiée sans argument size, cela revient à spécifier /Gs0,
Notes
Une sonde de pile est une séquence de code que le compilateur insère dans chaque appel de fonction. Lorsqu'elle est lancée, une sonde de pile pénètre sans heurt dans la mémoire en fonction de l'espace requis pour stocker les variables locales de la fonction.
Si une fonction requiert plus de size octets d'espace de pile pour les variables locales, sa sonde de pile est démarrée. Par défaut, le compilateur génère du code qui lance une sonde de pile quand une fonction requiert plus d'une page d'espace de pile. Ceci équivaut à une option du compilateur /Gs4096 pour les plateformes x86, x64 et ARM. Cette valeur permet à une application et au gestionnaire de mémoire Windows d'augmenter la quantité de mémoire validée dynamiquement dans la pile du programme au moment de l'exécution.
Notes
La valeur par défaut de /Gs4096 permet à la pile du programme des applications pour Windows de croître correctement au moment de l'exécution.Nous vous recommandons de ne pas modifier la valeur par défaut à moins que vous sachiez exactement pourquoi vous devez la changer.
Certains programmes (par exemple, les pilotes de périphériques virtuels) n'ont pas besoin de ce mécanisme de croissance de pile par défaut. Dans ce cas, les sondes de pile ne sont pas nécessaires et vous pouvez arrêter le compilateur qui les génère en affectant à size une valeur supérieure à celle qu'aucune fonction exigera pour le stockage des variables locales. Aucun espace n'est autorisé entre /Gs et size.
/Gs0 active des sondes de pile pour chaque appel de fonction qui requiert le stockage des variables locales. Cela peut avoir un impact négatif sur les performances.
Vous pouvez activer ou désactiver les sondes de pile en utilisant check_stack. /Gs et le pragma check_stack n'ont aucun effet sur les routines de bibliothèque C standard. Ils affectent uniquement les fonctions que vous compilez.
Pour définir cette option du compilateur dans l'environnement de développement Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, voir Comment : ouvrir les pages de propriétés d'un projet.
Sélectionnez le dossier C/C++.
Sélectionnez la page de propriétés Ligne de commande.
Tapez l'option de compilateur dans la zone Options supplémentaires.
Pour définir cette option du compilateur par programmation
- Consultez AdditionalOptions.