/RTC (التشغيل-خطأ في الوقت تدقيقات)

يستخدم إلى تمكين وتعطيل ميزة تدقيق خطأ وقت التشغيل، بالاقتران مع runtime_checkspragma.

/RTC1
/RTCc
/RTCs
/RTCu

الوسيطات

  • 1
    مكافئة من /RTCsu.

  • c
    تقرير عندما تكون القيمة تعيين إلى هو نوع من بيانات أصغر وينتج عنه فقدان بيانات. على سبيل المثال، إذا كانت القيمة من نوع short 0x101هو المعينة إلى متغير من نوع char.

    هذا خيار تقارير الحالات التي كنت إلى قصر، على سبيل المثال، إذا كنت ترغب في اﻷول الثمانية بتات من intإرجاع char. لأن /RTCcتسبب خطأ وقت التشغيل في حالة وجود أي معلومات هو فقدت كنتيجة للتعيين، يمكن قناع إيقاف المعلومات التي تحتاجها لتفادي حدوث خطأ وقت التشغيل كنتيجة /RTCc. فعلى سبيل المثال:

    #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
    تمكين تكديس الإطارات خطأ وقت التشغيل التدقيق، كما يلي:

    • تهيئة المحلية متغيرات إلى القيمة غير صفرية. وهذا يساعد في التعرف على الأخطاء التي لا تظهر عند تشغيل في الوضع التصحيح. هناك فرصة أكبر سيظل المتغيرات مكدس الذاكرة المؤقتة للصفر في بنية يصحح مقارنة بإنشاء إصدار وبسبب تحسينات برنامج التحويل البرمجي للمتغيرات المكدس في بنية إصدار. تم استخدام برنامج مساحة مكدس الذاكرة المؤقتة الخاصة به، هو عدم إعادة تعيينه إلى 0 بالمحول البرمجي. ولذلك، اللاحقة، غير مهيأ تكديس متغيرات هذا أن يحدث إلى استخدم بإرجاع نفس المنطقة المكدس القيم اليسار عبر عن استخدم السابقة من هذه ذاكرة لبنية تخزين العناصر.

    • الكشف عن عمليات تجاوز و underruns من المتغيرات المحلية مثل كـ الصفائف. /RTCsسوف لا تقوم باكتشاف عمليات تجاوز عند الوصول إلى ذاكرة التي تنتج من المحول البرمجي ترك مساحة داخل بنية. وقد يحدث المسافات البادئة باستخدام align (C++)، /Zp (عضو بنية المحاذاة)، أو pack، أو إذا كان ترتيب عناصر بنية بهذه طريقة ك إلى يتطلب المحول البرمجي إلى إضافة الحشو.

    • بنية تخزين العناصر للتحقق من المؤشر الذي قام بالكشف عن تلف مؤشر مكدس الذاكرة المؤقتة. يمكن أن يحدث تلف مؤشر مكدس بواسطة تطابق اصطلاح استدعاء. على سبيل المثال، استخدام مؤشر دالة، يمكنك استدعاء دالة في DLL التي هو تصديرها ك __stdcallولكنك تقوم بتعريفه المؤشر للدالة ك __cdecl.

  • u
    تقارير عند متغير هو استخدامه دون الحاجة تتم تهيئة. ل مثال، إرشاد الذي C4701قد أيضا بإنشاء خطأ وقت التشغيل ضمن /RTCu. أي تعليمة ينشئ تحذير برنامج التحويل البرمجي (المستوى 1 و المستوى 4) C4700سيقوم بإنشاء التشغيل-الوقت الخطأ ضمن /RTCu.

    ومع ذلك، خذ بعين الاعتبار جزء تعليمات برمجية التالية:

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

    إذا كان يمكن أن تتم تهيئة متغير، سوف لا بشأنه في تشغيل الوقت بواسطة /RTCu. على سبيل المثال، بعد متغير هو لا يتعقبها المستعار من خلال مؤشر، المحول البرمجي المتغير ويستخدم التقرير غير مهيأ. في الواقع، يمكنك يهيّئ متغير بواسطة أخذ عنوانه. & عامل يعمل كعامل تعيين في هذه الحالة.

ملاحظات

تدقيق خطأ وقت التشغيل طريقة إلى البحث عن مشاكل في جهاز تشغيل تعليمات برمجية؛ للحصول على مزيد من المعلومات، راجع كيفية القيام بما يلي: استخدام تدقيقات وقت التشغيل الأصلي.

إذا قمت بتصنيفها برنامج في سطر الأوامر باستخدام أي من /RTCالخيارات المترجم، أي pragma optimizeالإرشادات الموجودة في تعليمات برمجية الخاصة بك بصمت الفشل. Th هو هو لأن تدقيق خطأ وقت التشغيل غير صالحة في بنية إصدار (محسن).

ينبغي عليك استخدم /RTCلتطوير البنيات; /RTCلا يجب أن يكون استخدم d لبنية البيع بالتجزئة. /RTCلا يمكن استخدامها مع مترجم أمثلية الأداء ( خيارات/O (@)). نسخة برنامج تم إنشاؤها مع /RTCسيكون بقعة صغيرة قليلاً و أبطأ قليلاً من نسخة مضمنة مع /Od(لأعلى إلى 5 ‏‏نسبة مئوية slower than an**/Od**بنية).

أن التوجيه معالج أولي __MSVC_RUNTIME_CHECKS معرفة متى تقوم استخدم أي /RTCخيار أو /GZ .

لتعيين خيار المحول البرمجي هذا في بيئة تطوير Visual Studio

  1. افتح مربع الحوار صفحات الخصائص للمشروع. للمزيد من التفاصيل ، راجع كيفية: صفحات الخصائص المشاريع المفتوحة.

  2. انقر فوق المجلد /C + + C.

  3. انقر فوق صفحة الخصائص توليد تعليمات برمجية.

  4. تعديل واحد أو كلا من الخصائص التالية: وقت التشغيل أساسى الاختبارات أو فحص من نوع أصغر.

لتعيين هذا خيار المحول البرمجي برمجياً

راجع أيضًا:

المهام

نموذج RTC: تدقيقات التشغيل-خطأ في الوقت

المرجع

خيار المحول البرمجي

خيارات إعداد المترجم