/Gs (Controllo delle chiamate di controllo dello stack)

Controlla la soglia per i probe dello stack.

Sintassi

/Gs[size]

Argomenti

size
Facoltativo. Numero di byte che le variabili locali possono occupare prima che venga avviato un probe dello stack. Non sono consentiti spazi vuoti tra /Gs e size.

Osservazioni:

Un probe dello stack è una sequenza di codice inserita dal compilatore all'inizio di una chiamata di funzione. Quando viene avviato, un probe dello stack raggiunge in modo non dannoso la memoria in base alla quantità di spazio necessaria per archiviare le variabili locali della funzione. Questo probe fa sì che il sistema operativo esegua in modo trasparente la pagina in più memoria dello stack, se necessario, prima dell'esecuzione del resto della funzione.

Per impostazione predefinita, il compilatore genera del codice che avvia un probe dello stack quando una funzione richiede più di una pagina di spazio dello stack. Questa impostazione predefinita equivale a un'opzione del compilatore di /Gs4096 per le piattaforme x86, x64, ARM e ARM64. Questo valore consente a un'applicazione e al gestore della memoria di Windows di aumentare la quantità di memoria allocata per lo stack del programma dinamicamente e in fase di esecuzione.

Nota

Il valore predefinito di /Gs4096 consente allo stack di programmi di applicazioni per Windows di crescere correttamente in fase di esecuzione. Non modificare l'impostazione predefinita se non si conoscono con esattezza i motivi dell'eventuale modifica.

Alcuni programmi, ad esempio i driver di dispositivo virtuale, non richiedono questo meccanismo predefinito per la crescita dello stack. In questi casi, i probe dello stack non sono necessari ed è possibile impedire al compilatore di generarli impostando size su un valore maggiore di qualsiasi funzione necessaria per l'archiviazione delle variabili locali.

/Gs0 avvia i probe dello stack per ogni chiamata di funzione che richiede l'archiviazione per le variabili locali. Questo valore può avere un impatto negativo sulle prestazioni.

Per le destinazioni x64, se si specifica l'opzione /Gs senza un size argomento, è uguale /Gs0a . Se l'argomento size è compreso tra 1 e 9, il compilatore genera l'avviso D9014 e l'effetto equivale a specificare /Gs0.

Per le destinazioni x86, ARM e ARM64, l'opzione /Gs senza un size argomento è uguale /Gs4096a . Se l'argomento size è compreso tra 1 e 9, il compilatore genera l'avviso D9014 e l'effetto equivale a specificare /Gs4096.

Per tutte le destinazioni, un size argomento compreso tra 10 e 2147483647 imposta la soglia in corrispondenza del valore specificato. Un size oggetto di 2147483648 o superiore causa l'errore irreversibile C1049.

È possibile attivare o disattivare i probe dello stack usando la check_stack direttiva . /Gs e il check_stack pragma non hanno alcun effetto sulle routine della libreria C standard, ma influiscono solo sulle funzioni compilate.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Immettere l'opzione del compilatore /Gs e una dimensione facoltativa in Opzioni aggiuntive. Scegliere OK o Applica per salvare le modifiche.

Per impostare l'opzione del compilatore a livello di codice

Vedi anche

Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC