Bagikan melalui


/Gs (Panggilan pemeriksaan tumpukan kontrol)

Mengontrol ambang batas untuk pemeriksaan tumpukan.

Sintaks

/Gs[size]

Argumen

size
(Opsional) Jumlah byte yang dapat ditempati variabel lokal sebelum pemeriksaan tumpukan dimulai. Tidak ada spasi kosong yang diperbolehkan antara /Gs dan size.

Keterangan

Pemeriksaan tumpukan adalah urutan kode yang disisipkan pengkompilasi di awal panggilan fungsi. Ketika dimulai, pemeriksaan tumpukan mencapai dengan jinak ke dalam memori dengan jumlah ruang yang diperlukan untuk menyimpan variabel lokal fungsi. Pemeriksaan ini menyebabkan sistem operasi secara transparan halaman dalam memori tumpukan lebih jika perlu, sebelum fungsi lainnya berjalan.

Secara default, pengkompilasi menghasilkan kode yang memulai pemeriksaan tumpukan ketika fungsi memerlukan lebih dari satu halaman ruang tumpukan. Default ini setara dengan opsi /Gs4096 pengkompilasi untuk platform x86, x64, ARM, dan ARM64. Nilai ini memungkinkan aplikasi dan manajer memori Windows untuk meningkatkan jumlah memori yang diterapkan pada tumpukan program secara dinamis pada waktu proses.

Catatan

Nilai /Gs4096 default memungkinkan tumpukan program aplikasi untuk Windows tumbuh dengan benar pada waktu proses. Kami menyarankan agar Anda tidak mengubah nilai default kecuali Anda tahu persis mengapa Anda harus mengubahnya.

Beberapa program—misalnya, driver perangkat virtual—tidak memerlukan mekanisme pertumbuhan tumpukan default ini. Dalam kasus seperti itu, pemeriksaan tumpukan tidak diperlukan dan Anda dapat menghentikan pengkompilasi menghasilkannya dengan mengatur size ke nilai yang lebih besar dari fungsi apa pun yang diperlukan untuk penyimpanan variabel lokal.

/Gs0 memulai pemeriksaan tumpukan untuk setiap panggilan fungsi yang memerlukan penyimpanan untuk variabel lokal. Nilai ini dapat berdampak negatif pada performa.

Untuk target x64, jika Anda menentukan /Gs opsi tanpa size argumen, itu sama dengan /Gs0. size Jika argumen adalah 1 hingga 9, pengkompilasi mengeluarkan peringatan D9014, dan efeknya sama dengan menentukan /Gs0.

Untuk target x86, ARM, dan ARM64, /Gs opsi tanpa size argumen sama /Gs4096dengan . size Jika argumen adalah 1 hingga 9, pengkompilasi mengeluarkan peringatan D9014, dan efeknya sama dengan menentukan /Gs4096.

Untuk semua target, size argumen antara 10 dan 2147483647 menetapkan ambang batas pada nilai yang ditentukan. Satu size dari 2147483648 atau yang lebih besar menyebabkan kesalahan fatal C1049.

Anda dapat mengaktifkan atau menonaktifkan pemeriksaan tumpukan dengan menggunakan direktif check_stack . /Gscheck_stack dan pragma tidak berpengaruh pada rutinitas pustaka C standar; pragma hanya memengaruhi fungsi yang Anda kompilasi.

Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Masukkan opsi pengkompilasi /Gs dan ukuran opsional di Opsi Tambahan. Pilih OK atau Terapkan untuk menyimpan perubahan Anda.

Untuk mengatur opsi pengkompilasi ini secara terprogram

Baca juga

Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC