Làm th? nào đ? d?u ki?m v?t và g? l?i trong Visual Basic 2005 ho?c trong Visual Basic.NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 313417 - Xem s?n ph?m mà bài này áp d?ng vào.
Đ?i v?i m?t phiên b?n Microsoft Visual Basic 6.0 này vi?t, xem 161153.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng g? l?i và các l?p h?c water . Các l?p h?c có s?n trong Microsoft.NET Khuôn kh?. B?n có th? s? d?ng các l?p h?c cung c?p thông tin v? các hi?u su?t c?a ?ng d?ng ho?c trong phát tri?n ?ng d?ng ho?c sau khi tri?n khai đ? s?n xu?t. Nh?ng l?p này là ch? có m?t ph?n c?a các thi?t b? đo đ?c các tính năng có s?n trong các.NET Khuôn kh?.

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, cơ s? h? t?ng m?ng, và gói b?n ghi d?ch v? mà b?n c?n:
  • Microsoft Windows 2000 ho?c Microsoft Windows XP
  • Microsoft Visual Basic 2005 ho?c Microsoft Visual Basic.NET
Bài vi?t này c?ng gi? đ?nh r?ng b?n đ? quen thu?c v?i chương tr?nh g? l?i.

Mô t? k? thu?t

Các bư?c trong ph?n "T?o ra m?t m?u v?i l?p Debug" ch?ng minh làm th? nào đ? t?o m?t giao di?n đi?u khi?n ?ng d?ng s? d?ng Debug l?p cung c?p thông tin v? chương tr?nh th?c hi?n.

Khi chương tr?nh ch?y, b?n có th? s? d?ng phương pháp l?p Debug đ? s?n xu?t các tin thư thoại có th? tr? giúp đ? giám sát, đ? phát hi?n t?m nh?n th?p, ho?c cung c?p thông tin đo lư?ng hi?u su?t. theo m?c đ?nh, thông báo g? l?i l?p s?n xu?t xu?t hi?n trong c?a s? đ?u ra c?a Microsoft Visual Studio Môi trư?ng phát tri?n tích h?p (IDE).

M?u m? s? d?ng phương pháp WriteLine đ? s?n xu?t m?t tin thư thoại đó theo sau là m?t d?ng K? h?y di?t. Khi b?n s? d?ng phương pháp này đ? s?n xu?t m?t tin thư thoại, m?i thư xu?t hi?n trên m?t d?ng riêng bi?t trong c?a s? đ?u ra.

N?u b?n s? d?ng các phương pháp AssertDebug l?p, c?a s? đ?u ra hi?n th? m?t thông báo ch? khi m?t quy đ?nh t?nh tr?ng đánh giá sai. Thư c?ng xu?t hi?n trong đ?i tho?i hành đ?ng đ? ngư?i s? d?ng. hộp thoại bao g?m thư, tên d? án, và tuyên b? s? Debug.Assert . hộp thoại này c?ng bao g?m ba l?nh nút:
  • B? d?: đi?m d?ng ?ng d?ng đang ch?y.
  • Th? l?i: ?ng d?ng đi vào ch? đ? g? l?i.
  • B? qua: ?ng d?ng ti?n.
Ngư?i s? d?ng ph?i b?m vào m?t trong các nút ch?n m?t này trư?c khi ?ng d?ng có th? ti?p t?c.

B?n c?ng có th? tr?c ti?p đ?u ra Debug l?c t?i các đi?m đ?n khác ngoài c?a s? đ?u ra. Debug l?p có m?t b? sưu t?p đ?t tên thính gi? bao g?m các đ?i tư?ng ngư?i nghe . M?i đ?i tư?ng nghe giám sát đ?u ra g? l?i và ch? đ?o đ?u ra v?i m?t m?c tiêu đ? ch? đ?nh. M?i ngư?i nghe trong b? sưu t?p ngư?i nghe s? nh?n đư?c b?t k? đ?u ra mà t?o ra các giai c?p g? l?i . S? d?ng l?p TextWriterTraceListener đ? xác đ?nh các đ?i tư?ng ngư?i nghe . B?n có th? xác đ?nh m?c tiêu cho m?t l?p h?c TextWriterTraceListener thông qua các nhà xây d?ng c?a nó. M?t s? m?c tiêu có th? đ?u ra bao g?m:
  • C?a s? giao di?n đi?u khi?n b?ng cách s? d?ng các tài s?n System.Console.Out .
  • T?p văn b?n (.txt) b?ng cách s? d?ng các báo cáo System.IO.File.CreateText("FileName.txt")) .
Sau khi b?n t?o m?t đ?i tư?ng TextWriterTraceListener , b?n ph?i thêm các đ?i tư?ng cho b? sưu t?p Debug.Listeners đ? nh?n đư?c đ?u ra g? l?i .

T?o m?t m?u v?i các l?p h?c Debug

  1. S? d?ng Visual Basic 2005 ho?c Visual Basic.LƯ?I đ? t?o ra m?t d? án ?ng d?ng giao di?n đi?u khi?n m?i tên là conInfo. M?t mô-đun công c?ng đư?c đ?t tên Module1 đư?c thêm vào d? án c?a m?c đ?nh.
  2. Kh?i t?o bi?n có ch?a thông tin v? m?t s?n ph?m, thêm m? câu sau đây:
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. Ch? đ?nh thông báo r?ng các l?p s?n xu?t như là ngư?i đ?u tiên tham s? đ?u vào c?a phương pháp WriteLine . B?m t? h?p phím CTRL + ALT + O đ? đ?m b?o r?ng các Đ?u ra c?a s? đư?c nh?n th?y.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. Cho d? đ?c, s? d?ng phương pháp th?t l? đ? th?t l? thư ti?p sau đ?n trong c?a s? đ?u ra:
    Debug.Indent()
    					
  5. Đ? hi?n th? n?i dung c?a các bi?n đư?c ch?n, s? d?ng phương pháp WriteLine như sau:
    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. B?n c?ng có th? s? d?ng các phương pháp WriteLine đ? hi?n th? không gian tên và tên l?p cho m?t t?n t?i đ?i tư?ng. Ví d?, m? sau s? hi?n th? không gian tên System.Xml.XmlDocument trong c?a s? đ?u ra:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. T? ch?c các đ?u ra, b?n có th? bao g?m m?t th? lo?i như m?t tùy ch?n, th? hai tham s? đ?u vào c?a phương pháp WriteLine . N?u b?n ch? đ?nh m?t th? lo?i, đ?nh d?ng c?a đ?u ra c?a s? thư là "th? lo?i: thư." Ví d?, có d?ng đ?u tiên c?a các sau màn h?nh m? "l?nh v?c: tên s?n ph?m là ph? tùng" ? đ?u ra c?a s?:
    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. C?a s? đ?u ra có th? hi?n th? thông đi?p ch? khi m?t thi?t k? t?nh tr?ng đánh giá đúng s? th?t b?ng cách s? d?ng các phương pháp WriteLineIf c?a giai c?p g? l?i . Đi?u ki?n đ? đư?c đánh giá là tham s? đ?u vào đ?u tiên phương pháp WriteLineIf . Các tham s? th? hai c?a WriteLineIf là thông đi?p xu?t hi?n ch? khi các đi?u ki?n trong l?n đ?u tiên tham s? đánh giá đúng s? th?t.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. S? d?ng phương pháp Assert giai c?p Debug đ? cho đ?u ra c?a s? hi?n th? thông báo ch? khi m?t đi?u ki?n quy đ?nh đánh giá sai:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. T?o ra các đ?i tư?ng TextWriterTraceListener cho c?a s? giao di?n đi?u khi?n (tr1) và cho m?t t?p tin văn b?n tên Output.txt (tr2), và sau đó thêm t?ng đ?i tư?ng đ? G? l?i thính gi? b? sưu t?p:
    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. Cho d? đ?c, s? d?ng phương pháp Unindent đ? lo?i b? th?t l? cho tin nhaén ti?p theo các Debug l?p t?o ra. Khi b?n s? d?ng th?t l? và các phương pháp Unindent v?i nhau, ngư?i đ?c có th? phân bi?t đ?u ra như là nhóm.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. Đ? đ?m b?o r?ng t?ng đ?i tư?ng ngư?i nghe s? nh?n đư?c t?t c? các đ?u ra c?a nó, g?i phương pháp tuôn ra cho g? l?i l?p b? đ?m:
    Debug.Flush()
    					

B?ng cách s? d?ng l?p water

B?n c?ng có th? s? d?ng d?u ki?m v?t l?p đ? s?n xu?t các tin thư thoại mà qu?n l? th?c hi?n m?t ?ng d?ng. Các d?u ki?m v?tg? l?i l?p chia s? h?u h?t các phương pháp tương t? đ? s?n xu?t s?n lư?ng, trong đó:
  • WriteLine
  • WriteLineIf
  • Th?t l?
  • Unindent
  • Kh?ng đ?nh
  • Tuôn ra
B?n có th? dùng d?u ki?m v?tg? l?i các l?p h?c riêng ho?c v?i nhau trong ?ng d?ng tương t?. Trong m?t G? l?i c?u h?nh gi?i pháp d? án, đ?u ra c? d?u ki?m v?tg? l?i đang ho?t đ?ng. D? án t?o ra s?n lư?ng t? c? hai các l?p h?c cho t?t c? các đ?i tư?ng ngư?i nghe . Tuy nhiên, c?u h?nh gi?i pháp phát hành m?t d? án ch? t?o ra s?n lư?ng m?t d?u ki?m v?t l?c. D? án phiên b?n c?u h?nh gi?i pháp b? qua b?t k? l?p Debug phương pháp invocations.
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()
				

Xác minh r?ng nó ho?t đ?ng

  1. H?y ch?c ch?n r?ng g? l?i c?u h?nh gi?i pháp hi?n t?i.
  2. N?u gi?i pháp Explorer c?a s? không nh?n th?y, b?m các t? h?p phím CTRL + ALT + L đ? hi?n th? c?a s? này.
  3. B?m chu?t ph?i vào conInfo, và sau đó b?m thu?c tính.
  4. Trong ngăn bên trái c?a trang tính ch?t, trang thuộc tính conInfo, theo các m?c tin thư thoại c?u h?nh, h?y đ?m b?o r?ng m?i tên tr? t?i Debugging.
  5. ? trên m?c tin thư thoại c?u h?nh trong danh sách th? xu?ng h?p c?u h?nh , b?m vào ho?t đ?ng (g? l?i) ho?c g? l?i, và sau đó b?m OK.
  6. B?m CTRL + ALT + O đ? hi?n th? c?a s? đ?u ra.
  7. B?m phím F5 đ? ch?y m?. Khi Kh?ng đ?nh đ? th?t b?i c?a h?p xu?t hi?n, b?m vào b? qua.
  8. Trong c?a s? giao di?n đi?u khi?n, b?m phím ENTER. Chương tr?nh nên k?t thúc, và c?a s? đ?u ra s? hi?n th? đ?u ra sau đây:
    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.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						
  9. C?a s? giao di?n đi?u khi?n và các t?p tin Output.txt nên hi?n th? đ?u ra sau đây:
    (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.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						

Danh sách m? hoàn ch?nh

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 Sub
End Module
				

Gi?i đáp th?c m?c

  • N?u lo?i c?u h?nh gi?i pháp là phát hành, s?n lư?ng l?p g? l?i đư?c b? qua.
  • Sau khi b?n t?o m?t l?p TextWriterTraceListener cho m?t m?c tiêu c? th?, TextWriterTraceListener nh?n đư?c đ?u ra t? d?u ki?m v?tg? l?i các l?p h?c. Đi?u này x?y ra b?t k? v? cho dù b?n s? d?ng phương pháp thêmd?u ki?m v?t ho?c l?p Debug đ? thêm TextWriterTraceListener l?p ngư?i nghe .
  • N?u b?n thêm m?t đ?i tư?ng nghe cho cùng m?t m?c tiêu trong d?u ki?m v?tg? l?i các l?p h?c, m?i d?ng đ?u ra đư?c nhân đôi, b?t k? c?a cho dù G? l?i ho?c d?u ki?m v?t t?o ra s?n lư?ng.
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
    Dim tr2 As New TextWriterTraceListener(System.Console.Out)
    Trace.Listeners.Add(tr2)
    					

THAM KH?O

Đ? bi?t thêm thông tin, tham kh?o các ch? đ? sau trong các Khuôn kh? .NET l?p thư vi?n tài li?u:
Water l?p
http://msdn2.Microsoft.com/en-US/Library/System.Diagnostics.trace (vs.71) .aspx

G? l?i l?p
http://msdn2.Microsoft.com/en-US/Library/System.Diagnostics.Debug (vs.71) .aspx


Làm th? nào tôi làm c? m?t ?ng d?ng nh? v?i truy t?m?


http://ASP.dotnetheaven.com/howto/doc/TraceDemo.aspx
ho?c

http://QuickStart.developerfusion.co.uk/QuickStart/HOWTO/doc/TraceDemo.aspx

Thu?c tính

ID c?a bài: 313417 - L?n xem xét sau cùng: 07 Tháng Năm 2012 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
T? khóa: 
kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:313417

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com