كيفية تتبع وتصحيح الأخطاء في Visual Basic 2005 أو في Visual Basic.NET

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

اضغط هنا لرابط المقالة باللغة الانجليزية313417
الحصول على إصدار Microsoft Visual Basic 6.0 هذا المقالات، راجع الأرقام 161153.
الموجز
توضح هذه المقالة كيفية استخدام التصحيح وفئات التتبع . تتوفر هذه الفئات في Microsoft.NET إطار. يمكنك استخدام هذه الفئات بتوفير معلومات حول أداء تطبيق أثناء تطوير التطبيق أو بعد النشر للإنتاج. هذه الفئات جزء واحد فقط من الميزات المتوفرة في الأجهزة.NET إطار.

متطلبات

توضح القائمة التالية في الأجهزة الموصى بها برنامج، البنية الأساسية للشبكة، وحزم الخدمات التي تحتاجها:
  • نظام التشغيل Microsoft Windows 2000 أو Microsoft Windows XP
  • Microsoft Visual Basic 2005 أو Microsoft Visual Basic.NET
تفترض هذه المقالة أيضا أنك معتاد مع برنامج تصحيح الأخطاء.

وصف عن الأسلوب

الخطوات المذكورة في قسم "إنشاء نموذج باستخدام فئة التصحيح" عرض كيفية إنشاء وحدة تحكم التطبيق الذي يستخدم الفئة Debug لتوفير معلومات حول البرنامج التنفيذ.

عند تشغيل البرنامج، يمكنك استخدام أساليب الفئة Debug لإنتاج الرسائل التي تساعد على مراقبة، للكشف عن قصور عمل، أو لتوفير معلومات قياس الأداء. بشكل افتراضي، تظهر الرسائل التي تنتج فئة Debug في إطار الإخراج Microsoft Visual Studio بيئة التطوير المتكاملة (IDE).

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

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

يمكنك أيضا توجيه الإخراج من فئة Debug إلى وجهات أخرى غير إطار الإخراج. الفئة Debug على مجموعة باسم موزعي رسائل تتضمن كائنات الإصغاء . كل كائن مصغي مراقبة تصحيح الإخراج وتوجيه الإخراج إلى هدف محدد. يتلقى كل موزع رسائل في مجموعة المستمعين أي إخراج ينشئ فئة Debug . استخدم الفئة TextWriterTraceListener لتعريف كائنات موزع الرسائل . يمكنك تحديد الهدف لفئة TextWriterTraceListener عن طريق المنشئ الخاص به. بعض الأهداف مخرجات تشمل ما يلي:
  • إطار وحدة التحكم باستخدام الخاصية System.Console.Out .
  • ملف نصي (.txt) باستخدام عبارة System.IO.File.CreateText("FileName.txt")) .
بعد أن تقوم بإنشاء كائن TextWriterTraceListener ، يجب إضافة الكائن إلى مجموعة Debug.Listeners الحصول على إخراج التصحيح .

إنشاء نموذج باستخدام فئة التصحيح

  1. استخدم 2005 Visual Basic أو Visual Basic.NET لإنشاء مشروع "تطبيقات وحدة تحكم" جديد يسمى conInfo. إضافة وحدة نمطية عام المسمى الوحدة النمطية 1 إلى المشروع عن طريق الافتراضي.
  2. تهيئة المتغيرات على معلومات حول المنتج، قم بإضافة العبارات Dim التالية:
    Dim sProdName As String = "Widget"Dim iUnitQty As Integer = 100Dim dUnitCost As Decimal = 1.03					
  3. تحديد الرسالة التي تنتج الفئة الأول الحصول على معلمة الإدخال للأسلوب الإشارة . اضغط تركيبة المفاتيح CTRL + ALT + O للتأكد من أن إطار الإخراج مرئياً.
    Debug.WriteLine("Debug Information-Product Starting ")					
  4. قابلية القراءة، استخدم الأسلوب المسافة البادئة لوضع مسافة بادئة الرسائل التالية في إطار الإخراج:
    Debug.Indent()					
  5. لعرض محتوى المتغيرات المحددة، استخدم الأسلوب الإشارة كما يلي:
    Debug.WriteLine("The product name is " & sProdName)Debug.WriteLine("The available units on hand are " & iUnitQty)Debug.WriteLine("The per unit cost is " & dUnitCost)					
  6. يمكنك أيضا استخدام الأسلوب الإشارة إلى عرض مساحة الاسم واسم الفئة كائن موجود. على سبيل المثال، التعليمة البرمجية التالية عرض مساحة الاسم System.Xml.XmlDocument في إطار الإخراج:
    Dim oxml As New System.Xml.XmlDocument()Debug.WriteLine(oxml)					
  7. لتنظيم الإخراج، يمكنك تضمين فئة اختيارية، الثاني معلمة الإدخال للأسلوب الإشارة . إذا قمت بتحديد فئة تنسيق الإخراج إطار الرسالة "الفئة: رسالة." على سبيل المثال، السطر الأول من بعد عرض التعليمات البرمجية "حقل: اسم المنتج هو واجهة مستخدم" في الإخراج الإطار:
    Debug.WriteLine("The product name is " & sProdName, "Field")Debug.WriteLine("The units on hand are " & iUnitQty, "Field")Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")Debug.WriteLine("Total Cost is" & iUnitQty * dUnitCost, "Calc")					
  8. إطار الإخراج عرض الرسائل فقط إذا كان المعين تقييم الشرط إلى صواب باستخدام الأسلوب WriteLineIf من الفئة Debug . يتم تقييم الشرط معلمة الإدخال الأول من الأسلوب WriteLineIf . المعلمة الثانية من WriteLineIf هي الرسالة التي تظهر فقط إذا كان الشرط الأول يتم تقييم المعلمة إلى true.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")					
  9. استخدم الأسلوب تأكيد من الفئة Debug حيث يعرض الإطار إخراج الرسالة فقط إذا تقييم الشرط المحدد إلى false:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")Debug.Assert(dUnitCost < 1, "Message will appear")					
  10. إنشاء كائنات TextWriterTraceListener لإطار وحدة التحكم (tr1) وملف نصي يدعى Output.txt (tr2)، ثم قم بإضافة كل كائن إلى مجموعة موزعي رسائل التصحيح :
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)Debug.Listeners.Add(tr1)        Dim tr2 As New _  TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))Debug.Listeners.Add(tr2)					
  11. لسهولة القراءة, استخدم الأسلوب Unindent لإزالة المسافة البادئة للرسائل اللاحقة إنشاء فئة debug . عند استخدام وضع مسافة بادئة وأساليب Unindent معا، يمكنك تمييز القارئ الإخراج كمجموعة.
    Debug.Unindent()Debug.WriteLine("Debug Information-Product Ending")					
  12. للتأكد من أن كل كائن مصغي يتلقى كافة الإخراج الخاص به، استدعاء الأسلوب مسح لمخازن فئة Debug :
    Debug.Flush()					

استخدام فئة التتبع

يمكنك أيضا استخدام فئة تتبع لإنتاج رسائل مراقبة التنفيذ التطبيق. فئات التتبع و تصحيح مشاركة معظم الأساليب نفس إنتاج مخرجات، بما في ذلك:
  • الإشارة
  • WriteLineIf
  • المسافة البادئة
  • إزالة المسافة البادئة
  • التأكيد على
  • مسح
يمكنك استخدام التتبع وفئات تصحيح كل على حدة أو معا في نفس الطلب. في تصحيح المشروع تكوين Solution، تنشط إخراج التتبع و التصحيح . المشروع بإنشاء الإخراج من كل من فئات هذه على كافة الكائنات موزع الرسائل . على الرغم من ذلك، مشروع "تكوين Solution الإصدار" فقط إنشاء الإخراج من فئة التتبع . يتجاهل project "تكوين Solution إصدار" أي invocations Debug أسلوب فئة.
Trace.WriteLine("Trace Information-Product Starting ")Trace.Indent()Trace.WriteLine("The product name is " & sProdName)Trace.WriteLine("The product name is " & sProdName, "Field")Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")Trace.Assert(dUnitCost > 1, "Message will NOT appear")Trace.Unindent()Trace.WriteLine("Trace Information-Product Ending")Trace.Flush()Console.ReadLine()				

تحقق من أنه يعمل

  1. تأكد من أن تصحيح التكوين الحالي للحل.
  2. في حالة عدم ظهور إطار "مستكشف الحلول"، اضغط تركيبة المفاتيح CTRL + ALT + L لعرض هذا الإطار.
  3. انقر نقراً مزدوجاً فوق conInfoومن ثم انقر فوق خصائص.
  4. في الجزء الأيمن من صفحة الخاصية "conInfo"، ضمن مجلد تكوينات، تأكد من أن يشير السهم إلى تصحيح.
  5. أعلى المجلد التكوين، في مربع القائمة المنسدلة التكوين ، انقر فوق نشط (تصحيح) أو التصحيحومن ثم انقر فوق موافق.
  6. اضغط CTRL + ALT + O لعرض إطار الإخراج.
  7. اضغط المفتاح F5 لتشغيل التعليمات البرمجية. عند ظهور مربع الحوار فشل التأكيد ، انقر فوق " تجاهل".
  8. في إطار وحدة التحكم، اضغط ENTER. يجب أن البرنامج إنهاء وإطار الإخراج يجب عرض الإخراج التالي:
    Debug Information-Product Starting     The product name is Widget    The available units on hand are 100    The per unit cost is 1.03    System.Xml.XmlDocument    Field: The product name is Widget    Field: The units on hand are 100    Field: The per unit cost is 1.03    Calc: Total cost is 103    This message WILL appear    ---- DEBUG ASSERTION FAILED -------- Assert Short Message ----Message will appear---- Assert Long Message ----    at Module1.Main()  C:\Documents and Settings\Administrator\My     Documents\Visual Studio Projects\conInfo\Module1.vb(29)    The product name is Widget    The available units on hand are 100    The per unit cost is 1.03Debug Information-Product EndingTrace Information-Product Starting     The product name is Widget    Field: The product name is Widget    This message WILL appearTrace Information-Product Ending						
  9. يجب أن يعرض إطار وحدة التحكم والملف Output.txt الإخراج التالي:
    (The Output.txt file is located in the same directory as the conInfo executable, conInfo.exe. Normally this is the \bin folder of where the project source has been stored. By default that would be C:\Documents and Settings\User login\My Documents\Visual Studio Projects\conInfo\bin)    The product name is Widget    The available units on hand are 100    The per unit cost is 1.03Debug Information-Product EndingTrace Information-Product Starting     The product name is Widget    Field: The product name is Widget    This message WILL appearTrace Information-Product Ending						

إتمام سرد التعليمات البرمجية

Module Module1    Sub Main()        Dim sProdName As String = "Widget"        Dim iUnitQty As Integer = 100        Dim dUnitCost As Decimal = 1.03        Debug.WriteLine("Debug Information-Product Starting ")        Debug.Indent()        Debug.WriteLine("The product name is " & sProdName)        Debug.WriteLine("The available units on hand are " & iUnitQty)        Debug.WriteLine("The per unit cost is " & dUnitCost)        Dim oxml As New System.Xml.XmlDocument()        Debug.WriteLine(oxml)        Debug.WriteLine("The product name is " & sProdName, "Field")        Debug.WriteLine("The units on hand are " & iUnitQty, "Field")        Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")        Debug.WriteLine("Total cost is " & iUnitQty * dUnitCost, "Calc")        Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")        Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")        Debug.Assert(dUnitCost > 1, "Message will NOT appear")        Debug.Assert(dUnitCost < 1, "Message will appear")        Dim tr1 As New TextWriterTraceListener(System.Console.Out)        Debug.Listeners.Add(tr1)        Dim tr2 As New _          TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))                Debug.Listeners.Add(tr2)        Debug.WriteLine("The product name is " & sProdName)        Debug.WriteLine("The available units on hand are " & iUnitQty)        Debug.WriteLine("The per unit cost is " & dUnitCost)        Debug.Unindent()        Debug.WriteLine("Debug Information-Product Ending")        Debug.Flush()        Trace.WriteLine("Trace Information-Product Starting ")        Trace.Indent()        Trace.WriteLine("The product name is " & sProdName)        Trace.WriteLine("The product name is " & sProdName, "Field")        Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")        Trace.Assert(dUnitCost > 1, "Message will NOT appear")        Trace.Unindent()        Trace.WriteLine("Trace Information-Product Ending")        Trace.Flush()        Console.ReadLine()    End SubEnd Module				

استكشاف الأخطاء وإصلاحها

  • إذا كان نوع التكوين الحل الإصدار، يتم تجاهل الإخراج فئة Debug .
  • بعد قيامك بإنشاء فئة TextWriterTraceListener لهدف معين، يتلقى TextWriterTraceListener إخراج من تتبع وفئات التصحيح . يحدث هذا بغض النظر عن ما إذا كنت تستخدم أسلوب إضافةالتتبع أو الفئة Debug لإضافة TextWriterTraceListener إلى فئة المستمعين .
  • إذا قمت بإضافة كائن مصغي لنفس الهدف في تتبع وفئات Debug ، كل سطر من إخراج مكرر، بغض النظر عما إذا التصحيح أو تتبع ينشئ الإخراج.
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)Debug.Listeners.Add(tr1)Dim tr2 As New TextWriterTraceListener(System.Console.Out)Trace.Listeners.Add(tr2)					
مراجع
للحصول على مزيد من المعلومات، راجع المواضيع التالية في .NET Framework مكتبة الفئة الوثائق:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 313417 - آخر مراجعة: 05/07/2012 18:06:00 - المراجعة: 1.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMtar
تعليقات