تصحيح وقت السفر في Visual Studio Enterprise 2019

يسمح لك إصدار المعاينة من Time Travel Debugging (TTD) في Visual Studio Enterprise 2019 بتسجيل تنفيذ تطبيق ويب يعمل على جهاز Azure الظاهري ، ثم استعادة الخوارزمية واستنساخها بدقة. يتكامل TTD مع عرض Snapshot Debugger الخاص بنا ويسمح لك بالرجوع إلى كل سطر من التعليمات البرمجية وتشغيلها كما تشاء ، مما يساعد على تحديد المشاكل التي يمكن أن تحدث فقط في البيئات القتالية والتنبؤ بها.


يتم التقاط الصورة من صفحة لعبة Quantum Break (18+) في متجر Microsoft. بالمناسبة ، هناك خصم 75 ٪ على ذلك (10 دولارات). إذا أراد شخص ما ، لكن لم يجد الفرصة ، نوصي بذلك.



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

صورة

اليوم ، يسرنا أن نعلن عن إصدار Time Travel Debugging (TTD) في Visual Studio Enterprise. مع TTD ، نقدم لك القدرة على كتابة التعليمات البرمجية المنفذة في بيئة الإنتاج ولعب مسار التنفيذ داخل Visual Studio. يمنحك TTD أيضًا القدرة على التحرك ذهابًا وإيابًا في الوقت المناسب ، كما لو كنت تقوم بتصحيح الأخطاء المحلية من "الحلقة الداخلية". يمكنك أيضًا الوصول إلى ميزات تصحيح الأخطاء الهامة مثل السكان المحليين ومكدس الاتصال.

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

ما هو تصحيح وقت السفر؟


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

لقد قمنا بتوسيع Debugger Snapshot باستخدام TTD حتى تتمكن من تسجيل التطبيقات أثناء تشغيلها. يمكن بعد ذلك تشغيل هذا السجل في Visual Studio Enterprise 2019 ، حيث يمكنك الترجيع وتشغيل كل سطر من التعليمات البرمجية كما تشاء. تكتب TTD إلى سلسلة رسائل تفي بشروط snappoint وعادة ما يتم تنفيذها حتى نهاية الأسلوب. ولكن إذا كان هناك "انتظار" قبل نهاية الطريقة بعد snappoint ، فسيتم إيقاف التسجيل. ستكون هذه الميزة في معاينة إصدار Visual Studio 2019 بترخيص صالح. نحن نخطط لإضافة المزيد من البرامج النصية TTD في التحديثات المستقبلية.

الشروع في العمل مع TTD


يمكن تمكين معاينة لـ Time Travel Debugging في أحدث إصدار من Visual Studio Enterprise 2019 للأجهزة الظاهرية Azure التي تعمل بنظام Windows مع ASP.NET (4.8+).

بعد تثبيت أحدث إصدار من Visual Studio Enterprise ، أكمل الخطوات التالية:

1. افتح المشروع الذي يتطلبه Time Travel Debug - تأكد من أن لديك نفس إصدار الكود المصدري المنشور على الجهاز الظاهري Azure.

2. حدد Debug> Attach Snapshot Debugger وحدد الجهاز الظاهري Azure الذي يتم نشر مشروعك عليه إلى جانب حساب التخزين Azure. في المرة الأولى التي تحاول فيها الاتصال ، ستحتاج إلى تثبيت ملحق موقع Snapshot Debugger.

3. حدد الخيار Time Travel Debugging وانقر فوق الزر " إرفاق" . بمجرد أن يدخل Visual Studio وضع مصحح اللقطات ، سيكون قادرًا على التسجيل باستخدام TTD.

صورة

4. قم بإنشاء snappoint وقم بتكوينه لتمكين Time Travel Debugging. انقر فوق Start \ Update Collection .

صورة

5. بمجرد تجميع اللقطة الخاصة بك ، انقر فوق عرض اللقطة ، ويمكنك استخدام شريط الأوامر للعودة جيئة وذهابا ضمن الطريقة المسجلة.

صورة

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

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

يرجى ملاحظة: لن نسجل علاقات السبب والنتيجة غير المتزامنة أيضًا.

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

جرب TTD الآن!


نحن متحمسون بشكل لا يصدق حول كيفية مساعدة ميزة المعاينة هذه في تحسين تصحيح الأخطاء في Azure ، لكن هذه هي البداية فقط. يواصل فريقنا تطوير وإنشاء ميزات TTD إضافية نخطط لإضافتها في الإصدارات القادمة من Visual Studio.

ونحن نتطلع إلى ملاحظاتك!

Source: https://habr.com/ru/post/ar447998/


All Articles