كيفية القيام بما يلي: تصحيح تعليمات برمجية محسنة

ينطبق هذا الموضوع على:

النسخة

Visual Basic

C#‎

#F

C++‎

مطور الويب

Express

الموضوع الذي لا ينطبق الموضوع الذي لا ينطبق الموضوع الذي لا ينطبق

أصلي فقط

الموضوع الذي لا ينطبق

pro ، Premium و Ultimate

الموضوع الذي لا ينطبق الموضوع الذي لا ينطبق الموضوع الذي لا ينطبق

أصلي فقط

الموضوع الذي لا ينطبق

ملاحظة

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

عند المحول البرمجي بتحسين أمثلية تعليمات برمجية، repositions و reorganizes الإرشادات. وينتج عن هذا أكثر فعالية للتعليمات البرمجية المترجمة. وبسبب هذا rearrangement، لا يمكن دائماً تحديد مصحح الأخطاء تعليمات برمجية المصدر الذي يتوافق مع إلى التعيين من الإرشادات.

يمكن أن يؤثر على التحسين:

  • المحلية متغيرات، التي يمكن إزالتها بواسطة المحسن أو نقلها إلى مواقع? لا يفهم مصحح الأخطاء.

  • مواضع داخل دالة، التي تم تغييرها عند دمج المحسن كتل تعليمات برمجية.

  • تعمل أسماء للإطارات في مكدس الاستدعاءات، والذي قد يكون غير صحيح في حالة دمج محسن الثاني دالات.

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

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

وبسبب هذه القيود، فيجب عليك يصحح إذا كان ممكناً باستخدام الإصدار unoptimized البرنامج الخاص بك. بشكل افتراضي، تحسين هو متوقفاً عن التشغيل في تكوين تصحيح Visual C++البرنامج وتشغيله في تكوين الإصدار.

ومع ذلك، قد يظهر خطأ فقط في إصدارات برنامج الأمثل. في هذه الحالة، يجب أن يصحح تعليمات برمجية محسنة.

إلى تشغيل أمثلية في تكوين بنية تصحيح

  1. عندما تقوم بإنشاء مشروع جديد، تحديد Win32 Debugالهدف. Use the Win32Debug target until your program is fully debugged and you are ready to build a Win32 Release target. لا أمثلية المحول البرمجي Win32 Debugالهدف.

  2. قم بتحديد المشروع في مستكشف الحلول.

  3. تشغيل the عرض قائمة انقر فوقالصفحات الخصائص.

  4. في صندوق الحوار الصفحات الخاصية ، تأكد من أن Debugهو المحدد في lهوt تكوين إسقاط لأسفل.

  5. في مجلد عرض على اليمين، تحديد من C/C + + مجلد.

  6. ضمن المجلد C + + ، تحديد Optimization.

  7. في خصائص تشغيل اليمين، ابحث عن Optimization. تقول إعداد إلى جانبه ربما Disabled (/Od) . Choose one of the other options (Minimum Size (/O1), Maximum Speed (/O2), Full Optimization (/Ox), or Custom).

  8. إذا اخترت Customخيار Optimization، يمكنك الآن التعيين الخيارات لأي من الخصائص الأخرى في قائمة الخصائص.

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

for (x=0; x<10; x++)

افترض أنك التعيين نقطة توقف عند هذا الخط. قد تتوقع نقطة الإيقاف أن إصابة 10 مرة/مرات، ولكن إذا كانت التعليمة البرمجية هو تحسين نقطة الإيقاف هو عدد مرة/مرات الدخول إلى مرة واحدة فقط. أن هو لأن التعليمة الأولى بتعيين القيمة xإلى 0. المحول البرمجي يكتشف أن هذا فقط إلى أن تتم في نفس الوقت ونقله من تكرار حلقي. نقل نقطة الإيقاف مع عليه. الإرشادات التي تقوم بمقارنة و زيادة xتبقى داخل الحلقة. عندما تقوم بعرض Dهوassembly الإطار، الوحدة الخطوة هو تلقائياً بتعيين إلى إرشادات للتحكم بصورة أكبر مما هو مفيداً عندما تقوم بالدخول إلى تعليمات برمجية محسنة.

راجع أيضًا:

المبادئ

مصحح الأخطاء الأمان

موارد أخرى

تصحيح تعليمات برمجية الأصلية