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

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
Đối với một phiên bản Microsoft Visual Basic 6.0 này viết, xem 161153.
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 = 100Dim 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.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. 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.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						

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 SubEnd 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:

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 313417 - Xem lại Lần cuối: 05/07/2012 18:13:00 - Bản sửa đổi: 3.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 KbMtvi
Phản hồi