انتقل إلى المحتوى

تصحيح الأخطاء

ما هو تصحيح الأخطاء

تصحيح الأخطاء هو عملية يمكنك من خلالها اكتشاف وإصلاح الأخطاء الموجودة في الكود الخاص بك.

يمكن تشغيل أي برنامج .NET في وضعين مختلفين.

  • وضع الإصدار - يُستخدم عادةً في بيئات الإنتاج. عند استخدامه، يقوم .NET بتمكين تحسينات مختلفة للمترجم والتحسينات في الوقت الفعلي التي تحسن سرعة تنفيذ الكود وتقلل من استهلاك الذاكرة.
  • وضع التصحيح - يُستخدم بشكل أساسي في بيئات التطوير والاختبار. يتم تعطيل جميع التحسينات، ويمكنك إرفاق أدوات تصحيح .NET بالكود الخاص بك.

عند العمل مع مكتبات وتطبيقات .NET، يتضمن تصحيح الأخطاء ما يلي:

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

تعريف أدوات تصحيح .NET

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

بناء الخوارزميات في وضع التصحيح

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

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

قم بتثبيت أحدث إصدار من Visual Studio على جهازك وقم بتنفيذ الإجراءات التالية:

  • افتح المؤشر أو cBot الخاص بك في Visual Studio عن طريق تحديد خيار تحرير في Visual Studio في القائمة المنسدلة تحرير في... في أعلى نافذة محرر الكود.

  • في القائمة أعلى محرر الكود في Visual Studio، حدد تصحيح.

Image title

  • قم ببناء cBot أو المؤشر الخاص بك في وضع التصحيح.

تصحيح cBot أو مؤشر

الآن بعد أن تعرف كيفية بناء cBot أو مؤشر في وضع التصحيح، سنركز على كيفية تصحيحه بالفعل.

  • قم بتغيير حقوق الوصول للمؤشر أو cBot الخاص بك إلى FullAccess.

  • قم بإرفاق أداة تصحيح بعملية تشغيل المؤشر أو cBot الخاص بك. يمكنك القيام بذلك عن طريق استدعاء طريقة System.Diagnostics.Debugger.Launch().

1
2
3
4
5
6
7
8
9
protected override void OnStart()
{
    var result = System.Diagnostics.Debugger.Launch();

    if (result is false)
    {
        Print("Debugger launch failed");
    }    
}
1
2
3
4
5
6
7
8
9
protected override void Initialize()
{
    var result = System.Diagnostics.Debugger.Launch();

    if (result is false)
    {
        Print("Debugger launch failed");
    }    
}

ملاحظة

يجب استدعاء طريقة System.Diagnostics.Debugger.Launch() في طريقة OnStart() (لـ cBot) أو طريقة Initialize() (للمؤشر).

  • قم بتشغيل نسخة جديدة من cBot أو المؤشر الخاص بك. إذا كانت هناك نسخة قيد التشغيل بالفعل، حددها في واجهة المستخدم. يجب أن يتم توجيهك إلى Visual Studio مع مطالبة لتحديد أداة تصحيح. قم بذلك وانقر على موافق.

Image title

بمجرد بدء التصحيح، يمكنك تعيين نقاط التوقف، (الدخول إلى) أسطر الكود ورؤية مكدس الاستدعاء وقيم المتغيرات.

للحصول على دليل كامل حول كيفية التصحيح في Visual Studio، راجع وثائق تصحيح Visual Studio.

استخدام توجيه المعالج المسبق DEBUG

يمكنك أيضًا استخدام توجيه المعالج المسبق DEBUG في كود cBot أو المؤشر الخاص بك للتحكم في تدفق التنفيذ.

يكون التوجيه #if DEBUG مفيدًا عندما تريد تشغيل كتلة أو سطر من الكود فقط في وضع التصحيح.

1
2
3
4
5
6
7
8
9
protected override void OnStart()
{
#if DEBUG
    System.Diagnostics.Debugger.Launch();
    Print("Debugging");
#else
    Print("Not Debugging");
#endif
}

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

تتوفر معلومات إضافية حول توجيهات معالج C# في هذه الوثائق.