فهم مصحح أخطاء .NET في Visual Studio Code
في الوحدة السابقة، تعلمت أن مصحح الأخطاء يساعدك على التحكم في تنفيذ البرنامج ومراقبة حالته. في هذا القسم، ستتعلم كيفية القيام بكل من هاتين المهمتين في Visual Studio Code.
لنبدأ بتعلم كيفية تكوين مصحح أخطاء Visual Studio Code لاستخدامه مع .NET.
تكوين Visual Studio Code لتصحيح أخطاء .NET
في المرة الأولى التي تفتح فيها ملف C# في Visual Studio Code، ستتلقى مطالبة بتثبيت الملحقات الموصى بها ل C#.
سيقوم Visual Studio Code بتثبيت ملحق C# وإظهار مطالبة إضافية لإضافة الأصول المطلوبة لإنشاء مشروعك وتصحيحه.
ملاحظه
يعد دعم لغة C# في Visual Studio Code تثبيتا اختياريا من Marketplace. يطالبك Visual Studio Code تلقائيا بتثبيت هذا الملحق عند فتح ملف C# إذا لم تكن قد قمت بذلك بعد. إذا كنت تواجه مشكلات في إنشاء أو تصحيح أخطاء تطبيق .NET الخاص بك في Visual Studio Code، فيجب عليك التحقق من أن مشروعك يحتوي على الأصول المطلوبة لدعم لغة C#.
نقاط التوقف
كما تعلمت في الوحدة السابقة، يساعدك مصحح الأخطاء في تحليل تنفيذ البرنامج والتحكم فيه. عند بدء تشغيل مصحح أخطاء Visual Studio Code، فإنه يبدأ على الفور في تنفيذ التعليمات البرمجية الخاصة بك. نظرا لتنفيذ التعليمات البرمجية الخاصة بك بسرعة، تحتاج إلى أن تكون قادرا على إيقاف البرنامج مؤقتا على أي عبارة. ستستخدم نقاط التوقف للقيام بذلك.
يمكنك إضافة نقطة توقف في Visual Studio Code بالنقر فوق الجانب الأيمن من رقم السطر على السطر الذي تريد فصله. يجب أن تشاهد دائرة حمراء بعد تمكين نقطة التوقف. لإزالته، حدد الدائرة الحمراء مرة أخرى.
إذا نقرت بزر الماوس الأيمن لإضافة نقطة توقف، يمكنك أيضا تحديد إضافة نقطة توقف شرطية. يسمح لك هذا النوع الخاص من نقاط التوقف بإدخال شرط لكسر التنفيذ. ستكون نقطة التوقف هذه نشطة فقط عند استيفاء الشرط المحدد. يمكنك أيضا تعديل نقطة توقف موجودة بالنقر بزر الماوس الأيمن فوقها وتحديد تحرير نقطة التوقف.
نظرة عامة على مصحح أخطاء Visual Studio Code
بعد إعداد نقاط التوقف وبدء تشغيل التطبيق، تظهر لوحات معلومات وعناصر تحكم جديدة على الشاشة.
- عناصر تحكم تشغيل مصحح الأخطاء
- حالة المتغيرات
- حالة المتغيرات المراقبة
- مكدس الاستدعاءات الحالي
- نقاط التوقف
- عناصر التحكم في التنفيذ
- خطوة التنفيذ الحالية
- وحدة تحكم تتبع الأخطاء
عناصر تحكم تشغيل مصحح الأخطاء
في أعلى الشريط الجانبي، يمكنك العثور على عناصر التحكم في التشغيل:
- ابدأ تصحيح الأخطاء.
- حدد تكوين التشغيل النشط.
- تحرير ملف
launch.json. قم بإنشائه إذا كنت بحاجة إلى ذلك. - افتح محطة تتبع الأخطاء.
عرض حالة المتغيرات وتحريرها
عند تحليل سبب عيب برنامج، شاهد حالة المتغيرات للبحث عن تغييرات غير متوقعة. يمكنك استخدام لوحة المتغيرات للقيام بذلك.
يتم عرض المتغيرات الخاصة بك منظمة حسب النطاق:
- المتغيرات المحلية: يمكن الوصول إليها في النطاق الحالي، وعادة ما تكون الدالة الحالية.
- المتغيرات العمومية: يمكن الوصول إليها من كل مكان في البرنامج الخاص بك. يتم أيضا تضمين عناصر النظام من وقت تشغيل JavaScript، لذلك لا تفاجأ إذا رأيت الكثير من الأشياء هناك.
- متغيرات الإغلاق: يمكن الوصول إليها من الإغلاق الحالي، إن وجدت. يجمع الإغلاق بين النطاق المحلي للدالة والنطاق من الدالة الخارجية التي تنتمي إليها.
يمكنك فتح النطاقات والمتغيرات عن طريق تحديد السهم. عند فتح الكائنات، يمكنك مشاهدة جميع الخصائص المعرفة في الكائن.
من الممكن تغيير قيمة المتغير بسرعة بالنقر نقرا مزدوجا فوق المتغير.
من خلال تمرير مؤشر الماوس فوق معلمة دالة أو متغير مباشرة في نافذة المحرر، يمكنك أيضا نظرة خاطفة على قيمته.
مشاهدة المتغيرات
قد يكون من الممل البحث عن حالة متغيرة في كل مرة تريد تعقبها عبر الوقت أو وظائف مختلفة. هذا هو المكان الذي تأتي فيه لوحة Watch في متناول اليدين.
يمكنك تحديد الزر Plus لإدخال اسم متغير أو تعبير لمشاهدته. كبديل، يمكنك النقر بزر الماوس الأيمن فوق متغير في لوحة المتغيرات وتحديد Add لمشاهدة.
يتم تحديث جميع التعبيرات داخل لوحة المراقبة تلقائيا أثناء تشغيل التعليمات البرمجية الخاصة بك.
مكدس الاستدعاءات
في كل مرة يدخل فيها البرنامج دالة، تتم إضافة إدخال إلى مكدس الاستدعاءات. عندما يصبح التطبيق الخاص بك معقدا ولديك وظائف يتم استدعاؤها داخل الوظائف عدة مرات، يمثل مكدس الاستدعاءات مسار استدعاءات الوظائف.
من المفيد العثور على مصدر استثناء. إذا كان لديك عطل غير متوقع في البرنامج، فسترى غالبا شيئا ما في وحدة التحكم مثل المثال التالي:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9
تسمى مجموعة أسطر at [...] ضمن رسالة الخطأ تتبع مكدس . يعطي تتبع المكدس اسم وأصل كل دالة تم استدعاؤها قبل أن ينتهي الأمر بالاستثناء. قد يكون من الصعب قليلا فك التشفير، لأنه يتضمن أيضا وظائف داخلية من وقت تشغيل .NET.
هذا هو المكان الذي تأتي فيه لوحة مكدس الاستدعاءات Visual Studio Code في متناول اليد. يقوم بتصفية المعلومات غير المرغوب فيها لإظهار الوظائف ذات الصلة فقط من التعليمات البرمجية الخاصة بك بشكل افتراضي. يمكنك بعد ذلك إلغاء مكدس الاستدعاءات هذا لمعرفة مصدر الاستثناء.
لوحة نقاط التوقف
في لوحة Breakpoints، يمكنك رؤية جميع نقاط التوقف التي وضعتها في التعليمات البرمجية الخاصة بك والتبديل إليها. يمكنك أيضا تبديل الخيارات لكسر الاستثناءات التي تم اكتشافها أو غير المكتتبة. يمكنك استخدام لوحة نقاط التوقف لفحص حالة البرنامج وتتبع مصدر الاستثناء باستخدام مكدس الاستدعاءات عند حدوث أحدها.
التحكم في التنفيذ
يمكنك التحكم في تدفق تنفيذ البرنامج باستخدام عناصر التحكم هذه.
من اليسار إلى اليمين، تكون عناصر التحكم:
- متابعة التنفيذ أو إيقافه مؤقتا: إذا تم إيقاف التنفيذ مؤقتا، فسيستمر حتى يتم الوصول إلى نقطة التوقف التالية. إذا كان البرنامج قيد التشغيل، فسيتحول الزر إلى زر إيقاف مؤقت يمكنك استخدامه لإيقاف التنفيذ مؤقتا.
- الخطوة عبر: تنفيذ عبارة التعليمات البرمجية التالية في السياق الحالي.
-
خطوة إلى: مثل خطوة عبر، ولكن إذا كانت العبارة التالية عبارة عن استدعاء دالة، فانتقل إلى عبارة التعليمات البرمجية الأولى لهذه الدالة (مثل الأمر
step). -
الخروج: إذا كنت داخل دالة، فقم بتنفيذ التعليمات البرمجية المتبقية لهذه الدالة وارجع إلى العبارة بعد استدعاء الدالة الأولية (مثل الأمر
out). - إعادة تشغيل: أعد تشغيل البرنامج من البداية.
- إيقاف: إنهاء التنفيذ والخروج من مصحح الأخطاء.
استخدام وحدة تحكم تتبع الأخطاء
يمكنك إظهار وحدة تحكم تتبع الأخطاء أو إخفاؤها عن طريق تحديد Ctrl+Shift+Y لنظامي التشغيل Windows وLinux. حدد Cmd+Shift+Y for Mac. يمكنك استخدام وحدة تحكم تتبع الأخطاء لتصور سجلات وحدة تحكم التطبيق. يمكنك أيضا استخدامه لتقييم التعبيرات أو تنفيذ التعليمات البرمجية في محتوى التنفيذ الحالي، مثل الأوامر أو أسماء المتغيرات في مصحح أخطاء .NET المضمن.
يمكنك إدخال تعبير .NET في حقل الإدخال في أسفل وحدة تحكم التصحيح، ثم تحديد Enter لتقييمه. تظهر النتيجة مباشرة في وحدة التحكم.
باستخدام وحدة تحكم تتبع الأخطاء، يمكنك التحقق بسرعة من قيمة متغيرة أو اختبار دالة بقيم مختلفة أو تغيير الحالة الحالية.
ملاحظه
في حين أن وحدة تحكم تتبع الأخطاء مفيدة جدا لتنفيذ التعليمات البرمجية .NET وتقييمها، فقد تكون مربكة بعض الشيء عندما تحاول تنفيذ تطبيق .NET Console أو تصحيح أخطائه لأن وحدة تحكم تتبع الأخطاء لا تقبل إدخال المحطة الطرفية لبرنامج قيد التشغيل.
لمعالجة إدخال المحطة الطرفية أثناء تصحيح الأخطاء، يمكنك استخدام المحطة الطرفية المتكاملة (إحدى نوافذ Visual Studio Code) أو محطة طرفية خارجية. لهذا البرنامج التعليمي، يمكنك استخدام المحطة الطرفية المتكاملة.
افتح .vscode/launch.json.
قم بتغيير إعداد
consoleإلىintegratedTerminalمن:"console": "internalConsole",ل:
"console": "integratedTerminal",احفظ التغييرات التي أجريتها.
في الوحدة التالية، ستتعلم كيفية استخدام مصحح الأخطاء لإصلاح الخطأ في التعليمات البرمجية Fibonacci التي رأيناها سابقا.