Partager via


/Gs(Appels de case activée de pile de contrôles)

Contrôle le seuil des sondes de pile.

Syntaxe

/Gs[size]

Arguments

size
(Facultatif) Nombre d'octets que les variables locales peuvent occuper avant qu'une sonde de pile soit lancée. Aucun espace blanc n’est autorisé entre /Gs et size.

Notes

Une sonde de pile est une séquence de code que le compilateur insère au début d’un appel de fonction. Lorsqu’elle est lancée, une sonde de pile atteint sans gravité en mémoire la quantité d’espace nécessaire pour stocker les variables locales de la fonction. Cette sonde entraîne l’exécution du système d’exploitation de manière transparente dans une mémoire de pile supplémentaire si nécessaire, avant l’exécution du reste de la fonction.

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. Cette valeur par défaut équivaut à une option de compilateur pour /Gs4096 les plateformes x86, x64, ARM et ARM64. 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.

Remarque

La valeur par défaut permet /Gs4096 à la pile de programmes d’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) ne nécessitent pas 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 empêcher le compilateur de les générer en définissant size sur une valeur supérieure à n’importe quelle fonction requise pour le stockage de variables locales.

/Gs0 lance des sondes de pile pour chaque appel de fonction qui nécessite un stockage pour les variables locales. Cette valeur peut avoir un impact négatif sur les performances.

Pour les cibles x64, si vous spécifiez l’option /Gs sans size argument, elle est identique à /Gs0. Si l’argument size est de 1 à 9, le compilateur émet l’avertissement D9014 et l’effet est identique à celui spécifié /Gs0.

Pour les cibles x86, ARM et ARM64, l’option /Gs sans size argument est identique à /Gs4096. Si l’argument size est de 1 à 9, le compilateur émet l’avertissement D9014 et l’effet est identique à celui spécifié /Gs4096.

Pour toutes les cibles, un size argument compris entre 10 et 2147483647 définit le seuil à la valeur spécifiée. Une size 2147483648 ou supérieure provoque une erreur irrécupérable C1049.

Vous pouvez activer ou désactiver les sondes de pile à l’aide de la check_stack directive. /Gs et le check_stack pragma 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

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Entrez l’option du compilateur /Gs et une taille facultative dans Options supplémentaires. Choisissez OK ou Appliquer pour enregistrer vos modifications.

Pour définir cette option du compilateur par programmation

Voir aussi

Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC