Aracılığıyla paylaş


/ rtc (çalışma zamanı hatası çekler)

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

/RTC1
/RTCc
/RTCs
/RTCu

Değişkenler

  • 1
    Equivalent of /RTCsu.

  • c
    Daha küçük bir veri türü ve veri kaybı sonuçlarda raporları bir değer atanır.Örneğin, bir değer türü, short 0x101 türündeki bir değişkene atanan char.

    Durumlar içinde düşündüğünüz kesmektir, örneğin, ilk sekiz bitlik istiyorsanız bu seçeneği raporları bir int olarak dönen bir char.Çünkü /RTCc çalýþtýrma hatasýna neden olan herhangi bir bilgi atama sonucunda kaybolursa, kapalı bir çalışma zamanı hatası sonucu ö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ğere 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şkenleri hala sürüm oluşturma için sürüm oluşturma yığın değişkenlerin derleyici en iyi duruma getirme nedeniyle karşılaştırıldığında bir hata ayýklama yapýsýnýn Confi de sıfır olacaktır büyük bir olasılık vardır.Bir program, yığın alanı sonra derleyici tarafından hiçbir zaman 0 olarak sıfırlanır.Bu nedenle, aynı yığın alanı kullanacak şekilde gerçekleşmesini izleyen, başlatılmamış bir yığın değişkenler bu yığın bellek önceki kullanımdan sol değerleri döndürebilir.

    • Algılama taşmaları ve yerel değişkenleri diziler gibi underruns./RTCstaşmaları, derleyici doldurma bir yapı içinde oluşur bellek erişirken algılamaz.Doldurma kullanarak olabilir Hizalama (C++), /Zp (yapı üye hizalama), veya pack, ya da böyle bir şekilde doldurma eklemek için derleyici gerektiren için yapı öğelerini sipariş ederseniz.

    • Yığın işaretçisinin Bozulması algılar yığın işaretçisi doğrulama.Yığın işaretçisinin Bozulması çağırma kuralı uyumsuzluğundan kaynaklanır.Örneğin, bir işlev işaretçisi kullanarak, bir işlev olarak verilen bir dll içinde çağrı çaðrý standardýný ancak işlev işaretçisi bildirmek __cdecl.

  • u
    Bir değişkenin başlatılıp olmadan kullanıldığında, raporlar.Örneğin, üreten bir yönerge C4701 de altında bir çalışma zamanı hatası oluşturabilir /RTCu.Ürettiği herhangi bir yönerge Derleyici uyarı (düzey 1 ve Düzey 4) C4700 altında bir çalışma zamanı hatası üretecektir /RTCu.

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

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

    Bir deðiþkenin baþlatýlma, onu tarafından çalışma zamanında raporlanmaz /RTCu.Örneğin, bir değişkeni bir işaretçi ile bilinir sonra derleyici değil değişkeni izlemek ve başlatılmamış kullanır rapor.Gerçekte, bir değişken adresini alarak baþlatabilirsiniz.& Bu durumda bir atama işleci işleç çalışır.

Notlar

Çalışma zamanı hata denetimleri, sorunları çalışan kodunuzu bulmak için bir yoldur; Daha fazla bilgi için bkz: Nasıl yapılır: yerel çalışma zamanı denetimleri kullanmak.

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

Kullanmanız gereken /RTC geliştirme derlemeleri; /RTCPerakende oluşturma için kullanılmamalıdır./RTCDerleyici en iyi duruma getirme ile kullanılan (/o seçenekler (kodu en iyi duruma getir)).Bir program görüntüsü ile yerleşik /RTC biraz daha büyük ve ile oluşturulmuş bir görüntü'den biraz daha yavaş olacaktır /Od (en fazla yüzde 5 daha yavaş bir /Od build).

Kullandığınızda __MSVC_RUNTIME_CHECKS Önişlemci yönergesi tanımlanmış /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çın.

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

  3. Tıklatın Kod oluşturma özellik sayfası.

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

Bu derleyici seçeneği programlı olarak ayarlamak için

Ayrıca bkz.

Görevler

RTC sample

Başvuru

Derleme Seçenekleri

Derleyici seçeneklerini ayarlama