يحتوي الإصدار النهائي من Visual Studio 2010 على ميزة جديدة IntelliTrace (التتبع الذكي). تم تقديم IntelliTrace في Visual Studio لتسريع تصحيح أخطاء تطبيقات .NET. فهو يتتبع الأحداث والأساليب المعدة مسبقًا أثناء عملية التشغيل ويتم تمريرها بشكل فعال إلى منفذ تصحيح الأخطاء ، وبالتالي نقل حالة البرنامج ومعلوماته المتنوعة بسرعة أثناء التنفيذ لمساعدة المطورين على تصحيح أخطاء البرنامج بشكل أفضل والعثور على المشكلات بسرعة. في الواقع، قبل Visual Studio 2010، ساعدنا Microsoft Visual Stuido في اكتساب أدوات تصحيح الأخطاء بشكل جيد للغاية، مثل مراقبة المتغيرات وعرض الحزم وما إلى ذلك، والسماح بتعيين نقاط التوقف لتصحيح الأخطاء بخطوة واحدة وما إلى ذلك. كل هذا مفيد جدًا للمطورين لفهم حالة البرنامج في عمليات التنفيذ المختلفة واكتشاف ما إذا كان يعمل وفقًا للمنطق الفعلي مسبقًا. وأكثر من ذلك، يمكننا العثور على المشكلة من خلال مراقبة حالة البرنامج بعد نقاط التوقف. المشكلة في ذلك هي أنه قد تحدث بعض الأخطاء المنطقية قبل تنفيذ نقطة التوقف، وقد لا يمكن تتبعها. يجب على المطورين إيقاف تصحيح الأخطاء الحالي وإعادة تعيين نقطة التوقف وبدء التصحيح، وغالبًا ما تستغرق هذه العملية التجريبية عدة مرات للعثور على الموقع الصحيح لتعيين نقطة التوقف. يقوم IntelliTrace تلقائيًا بتتبع وعرض بعض معلومات تصحيح الأخطاء وحالة البرنامج للمطورين، مما يقلل حاجة المبرمجين إلى العثور على نقاط توقف مناسبة لتتبع حالة تشغيل البرنامج ومراقبتها.
يوفر لنا Visual Studio طريقتين للتحكم في مصدر محتوى المعلومات التي يجمعها. إحداهما هي أحداث IntelliTrace فقط، والتي تجمع فقط البيانات المتعلقة بأحداث التتبع الذكي ومقاطعات التصحيح؛ والأخرى هي أحداث IntelliTrace ومعلومات الاتصال، والتي ستجمع البيانات فيها بالإضافة إلى IntelliTrace بيانات مختلفة عن الدخول والخروج من استدعاء الأسلوب خارج الأحداث. دعونا نلقي نظرة على كيفية تعيين خيارات التتبع الخاصة بـ IntelliTrace في Visual Studio 2010.
انتقل إلى أدوات-->خيارات-->IntelliTrace. يتم تمكينه افتراضيًا، ومع ذلك، فهو يلتقط الأحداث فقط نظرًا لأن التقاط الأحداث رخيص. ومع ذلك، عندما تبدأ في تتبع كل معلومات المكالمات هذه، تبدأ القيمة الحقيقية في الظهور. في كل مرة تقوم فيها بالتصحيح، سينبثق IntelliTrace. يمكنك استخدام أداة تصحيح الأخطاء التاريخية هذه أثناء التصحيح الديناميكي. لنفترض أنني هناك ولدي نقطة توقف، ولكنني أريد إجراء نسخ احتياطي لنقطة التوقف هذه وإعادة تصميمها، ويمكنني استخدام IntelliTrace لإنجاز هذه المهمة.
يمكن للآخرين الذين التقطوا عمليات تصحيح الأخطاء الخاصة بهم باستخدام IntelliTrace أن يرسلوا لك التسجيلات وملفات .dlls وpdbs، ويمكنك إعادة تشغيل عملياتهم. قد تنتقل العملية إلى قاعدة البيانات (ليس لديك قاعدة البيانات)، وقد يتم إعدادها بطريقة لا يمكنك نسخها، وقد تكون على شبكة لا يمكنك الوصول إليها، ولكنك لا تفعل ذلك. لا داعي للقلق لأن لديك السجلات وملفات .dlls وpdbs التي يمكنك إعادة تشغيلها.
بالطبع، من الأفضل أن يكون لديك كود المصدر، لأنه بعد ذلك يمكنك رؤية الكود كما لو كنت تقوم بتصحيحه على جهازك الخاص. يعد هذا أمرًا رائعًا بالنسبة لمواطن الخلل الغامضة التي تعمل بشكل جيد على جهازك ولكن ليس على أجهزة الآخرين. كما أنه جيد جدًا في المواقف متعددة الخيوط، وأثناء تصفحك للتطبيق، يختفي خلل البرنامج، ولكن عند التشغيل بالسرعة العادية، يظهر خلل البرنامج مرة أخرى.
افتراضيًا، يقوم IntelliTrace بجمع الأحداث ذات الصلة بـ IntelliTrace فقط، وذلك لإبقاء البيانات المجمعة صغيرة ويكون التأثير على الأداء في حده الأدنى. عندما تختار أيضًا تجميع البيانات عند استدعاءات الطريقة، بالإضافة إلى الزيادة في المساحة التي تشغلها البيانات المجمعة مؤقتًا، يكون التأثير على الأداء أكبر أيضًا. على الرغم من اختلاف التفاصيل التي تم جمعها، فإن كلا الطريقتين تجمعان بعض البيانات المشتركة. على سبيل المثال، سيتم دائمًا جمع معلومات النظام عند بدء عملية التجميع لأول مرة، وأحداث تحميل وتفريغ الوحدة، وأوقات بدء وانتهاء سلسلة المحادثات، وما إلى ذلك. عند حدوث أحداث الوحدة النمطية ومؤشر الترابط، يمكن تحديث معلومات نافذة تصحيح أخطاء الوحدة النمطية ومؤشر الترابط بشكل صحيح. بالإضافة إلى ذلك، في أي وضع، سيتم أيضًا جمع البيانات عند نقاط توقف التصحيح، وسيتم فحص أنواع البيانات الأساسية المجمعة والكائنات ومراجعتها أثناء التصحيح، وسيُسمح بتغيير قيمها.
بشكل عام، تم تصميم مصحح أخطاء IntelliTrace خصيصًا لمطوري البرامج، ومن خلال وظيفة تصحيح الأخطاء التاريخية الفريدة الخاصة به، فإنه يوفر للمطورين وظيفة التحكم في عملية التتبع. على سبيل المثال، ماذا علي أن أفعل إذا حدث استثناء قبل 10 دقائق في البرنامج أثناء التطوير، إذا كان يتم ذلك عادةً عن طريق استدعاء عبارة Debug.Write يدويًا، فلا داعي لذلك الآن! نظرًا لأن وظائف تصحيح الأخطاء التاريخية في العديد من أدوات التطوير متشابهة جدًا، فمن خلال IntelliTrace في الإصدار الرسمي من VS2010، لا يستطيع المبرمجون رؤية الحالة الحالية للبرنامج فحسب، بل يمكنهم أيضًا التحقق من الأحداث التي تم إنشاؤها في ظل ظروف معينة، وحتى عزل نقاط الفشل في تاريخ التطبيق. لذلك، بعد تمكين التصحيح التاريخي، يمكن للإصدار الرسمي من VS2010 التقاط مكدس الاستدعاءات والمتغيرات ذات الصلة، ويمكننا العودة إلى 10 دقائق أو أكثر قبل حفظ البرنامج للتحقق من المواقف المختلفة عند حدوث استثناءات وفشل في البرنامج. نظرًا لأن البرنامج يحفظ أنواع المفاتيح فقط بشكل افتراضي، فيمكن للمطور اختيار تسجيل جميع المعلمات والكائنات والمتغيرات العامة. ولذلك، سيعرض IntelliTrace الأحداث الرئيسية بشكل فعال أثناء تشغيل البرنامج، مثل استثناءات التعليمات البرمجية، والوصول إلى الملفات، وتصحيح الأخطاء في الوقت الحقيقي، وما إلى ذلك.