Aracılığıyla paylaş


/RTC (Çalışma Zamanı Hata Denetimleri)

Birlikte çalışma zamanı hatası denetimi özelliğini devre dışı bırakmak ve etkinleştirmek için kullanılan runtime_checks pragma.

/RTC1
/RTCc
/RTCs
/RTCu

Arguments

  • 1
    Equivalent of /RTCsu.

  • c
    Raporları bir değeri olduğunda sonuçları, veri kaybı ve daha küçük bir veri türü için atanır.Örneğin, bir değer türü, short 0x101 türündeki bir değişkene atanır char.

    Durumlar içinde istediğiniz, örneğin, bir kesecek şekilde ilk sekiz bitlik istiyorsanız bu seçenek rapor bir int olarak döndürülen bir char.Çünkü /RTCc bir çalýþtýrma hatasýna neden olan herhangi bir bilgi atamanın sonucunda kaybolursa, kapalı bir çalışma zamanı hatası sonucu olarak önlemek için gereksinim duyduğunuz bilgileri maskeleyebilirsiniz /RTCc.Örneğin:

    #include <crtdbg.h>
    
    char get8bits(int value, int position) {
       _ASSERT(position < 32);
       return (char)(value >> position);
       // Try the following line instead:
       // return (char)((value >> position) & 0xff);
    }
    
    int main() {
       get8bits(12341235,3);
    }
    
  • s
    Çerçeve çalışma zamanı hatası, aşağıdaki gibi denetimini etkinleştirir yığın:

    • Sıfır olmayan bir değer için yerel değişkenleri başlatma.Bu hata ayıklama modunda çalışırken görünmez hataların belirlenmesine yardımcı olur.Yığın değişkenlerini yine derleyici iyileştirmelerini yığın değişkenlerin bir yayın yapısı nedeniyle bir yayın yapısı karşılaştırıldığında hata ayıklama yapıda sıfır olması büyük bir olasılık var.Bir program kendi yığın alanı kullandı sonra derleyici tarafından hiçbir zaman 0 olarak sıfırlanır.Bu nedenle, aynı yığın alanı kullanır izleyen, başlatılmamış yığın değişkenlerini Bu yığın bellek önceki kullanımdan sol değerleri döndürebilir.

    • Taşmaları ve underruns yerel değişkenlerin dizileri gibi algılanması./RTCsbir yapı içindeki derleyici doldurma oluşur bellek erişirken taşmaları algılamaz.Doldurma kullanarak olabilir align (C++), /Zp (Yapı Üyesi Hizalama), veya pack, ya da yapı öğelerini doldurma eklemek için derleyici gerektirecek şekilde içinde sipariş.

    • Yığın işaretçisi bozulma algılarsa yığın işaretçisi doğrulama.Çağırma kuralı uyumsuzluğu yığın işaretçisi bozulmasına neden olabilir.Örneğin, bir işlev işaretçisini kullanarak, bir işlev olarak verilen bir DLL'de çağırmanız __stdcall ancak işlev işaretçisi bildirmek __cdecl.

  • u
    Bir değişken başlatılmamış olmadan kullanıldığında, raporlar.Örneğin, oluşturduğu bir yönerge C4701 de altında bir çalışma zamanı hatası verebilir /RTCu.Üreten yönerge Derleyici Uyarısı (düzey 1 ve düzey 4) C4700 altında bir çalışma zamanı hatası oluşturur /RTCu.

    Ancak, aşağıdaki kod parçası göz önünde bulundurun:

    int a, *b, c;
    if ( 1 )
    b = &a;
    c = a;  // No run-time error with /RTCu
    

    Bir değişken başlatılmamış, onu tarafından çalışma zamanında raporlanmaz /RTCu.Örneğin, işaretçi üzerinden takma adlı bir değişken olduktan sonra derleyici değil değişken izlemek ve rapor başlatılmamış kullanır.Diğer bir deyişle, adresini alarak değişken başlatabilirsiniz.& Gibi bu durumda bir atama işleci işleç çalışır.

Notlar

Çalışma zamanı hatası çeklerin çalışan kodunuzda sorunları bulmak bir yol olduğundan; Daha fazla bilgi için bkz: Nasıl Yapılır: Yerel Çalışma Zamanı Denetimlerini Kullanma.

Programınız herhangi birini kullanarak komut satırında derlemek, /RTC derleyici seçenekleri, tüm pragma optimize , kodunuzda yönergeleri sessizce başarısız olur.Bu durum, çalışma zamanı hata denetimleri (Hızlandırılmış) yayın yapı içinde geçerli değildir çünkü.

Kullanmanız gereken /RTC için geliştirme yapılar; /RTC perakende yapı için kullanılmamalıdır./RTCderleyici iyileştirmelerini ile kullanılan (/O Seçenekler (Kodu İyileştir)).Program görüntü ile oluşturulan /RTC biraz daha büyük ve ile oluşturulan görüntü biraz daha yavaş olacak /Od (en fazla yüzde 5 daha yavaş bir /Od yapı).

Kullandığınızda __MSVC_RUNTIME_CHECKS önişlemci yönergesi tanımlı /RTC seçeneğini veya /GZ.

Visual Studio geliştirme ortamındaki bu derleyici seçeneğini ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın.Ayrıntılar için bkz. Nasıl Yapılır: Proje Özellik Sayfalarını Açma.

  2. C/C++ klasörünü tıklatın.

  3. ' I Kod oluşturma özellik sayfası.

  4. Aşağıdakilerden birini veya her ikisini aşağıdaki özellikleri değiştirin: Temel çalışma zamanı denetler veya Daha küçük türünü denetleme.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Ayrıca bkz.

Başvuru

Derleyici Seçenekleri

Derleyici Seçeneklerini Ayarlama

Diğer Kaynaklar

RTC sample