Visual Studio .NET 提供幾個方法協助您偵錯 .NET Framework 應用程式。
本文將逐步告訴您,如何使用中斷點來偵錯以 Microsoft Visual Basic .NET 撰寫的程式碼區段。
本文假設您已熟悉
Visual Basic .NET 語法。
建立程式碼範例
- 啟動 Visual Studio .NET,建立名稱為 Debug 的新「Visual Basic
主控台應用程式」專案。
- 將 Module1.vb 中的程式碼修改如下:
Module Module1
Sub Main()
Dim MyTime As String = TimeString
Dim MyGreeting As String
' Create a greeting.
If CInt(TimeString.Substring(0, 2)) < 12 Then
MyGreeting = Reverse("Good Morning")
Else
MyGreeting = Reverse("Good Afternoon")
End If
' Display reversed greeting.
Console.WriteLine(MyGreeting)
End Sub
Function Reverse(ByVal inStr As String) As String
' Reverses the characters contained in a string.
Dim MyInt As Integer
Dim MyStr As String
For MyInt = (inStr.Length - 1) To 0 Step -1
MyStr = MyStr & inStr.Substring(MyInt, 1)
Next
Return MyStr
End Function
End Module
- 儲存專案。
建立無條件中斷點
- 在 [偵錯] 功能表中按一下 [視窗],再按 [中斷點]。
- 在 [程式碼] 檢視中,按一下下列程式碼行旁邊的左側邊界。這會在該陳述式上設定中斷點:
If CInt(TimeString.Substring(0, 2)) < 12 Then
- 在 [偵錯] 功能表中,按一下 [啟動], 則程式在偵錯模式中啟動。程式到達中斷點時即停止。
- 在 [偵錯] 功能表中按一下 [視窗],再按 [本機]。出現本機變數值 MyGreeting 和 MyTime。
- 在 [偵錯] 功能表中,按一下 [繼續] (或按 F5), 讓中斷點後的程式繼續執行。
建立條件函式中斷點
- 在 [中斷點] 視窗中按一下 [新增] 以建立新的中斷點。
- 在 [函式] 索引標籤上,在 [函式] 輸入 Reverse。在 [行] 輸入 1,在 [字元] 輸入 1,並且將 [語言] 設為 Basic。
- 按一下 [條件],確定有選取 [條件] 核取方塊。在 [條件] 輸入 instr.length > 0,並且確定有選取 [為 True] 選項,然後按一下 [確定]。
- 在 [新中斷點] 對話方塊中按一下 [確定]。
- 在 [偵錯] 功能表中,按一下 [啟動]。
- 程式在 [主要] 方法的 IF 陳述式停止。如果要繼續執行程式,請在 [偵錯] 功能表中,按一下 [繼續]。
- 程式又在 Reverse 函式停止。繼續執行程式。
建立其他中斷點
- 如果要建立其他中斷點,請按一下下列程式碼行旁邊的 Reverse 函式的左側邊界。
MyStr = MyStr & inStr.Substring(MyInt, 1)
變更中斷點內容
- 如果要變更新中斷點的內容,請以滑鼠右鍵按一下前一個步驟的程式碼行,並且按一下 [中斷點內容]。
- 按一下 [叫用次數]。
- 如果要將 [當叫用中斷點時] 設為 2 的倍數,請在文字欄位中輸入
2,然後按一下 [確定]。
- 在 [中斷點內容] 對話方塊中按一下 [確定]。
- 在 [偵錯] 功能表中,按一下 [啟動] (或按 F5)。程式在第一個中斷點停止。
- 繼續執行程式,直到偵錯處理程序完成。
在偵錯模式中逐步執行程式碼
- 在偵錯模式中啟動程式。程式到達第一個中斷點時,在 [偵錯] 功能表中按一下 [不進入函式]。不進入中斷點,直接到下一個陳述式。
- 如果您在早上執行這個程式,會出現下列陳述式:
MyGreeting = Reverse("Good Morning")
如果您在下午執行這個程式,會出現 Else 陳述式。按 F10,再次進入下列陳述式:
MyGreeting = Reverse("Good Afternoon")
- 在 [偵錯] 功能表上,按一下 [逐步執行], 以逐步執行 Reverse 函式。
- 繼續在 [偵錯] 功能表上按 [不進入函式],直到再度出現下列陳述式:
MyStr = MyStr & inStr.Substring(MyInt, 1)
- 在左側邊界按一下以移除目前的中斷點。
- 在 [偵錯] 功能表上,按一下 [跳離函式], 以跳離 Reverse 函式。
- 繼續執行,直到偵錯處理程序完成。
變更中斷點視窗輸出
- 在 [中斷點] 視窗中按一下 [欄] 功能表,顯示可用欄。
- 按一下 [函式],將 [函式] 欄新增到 [中斷點] 視窗的顯示畫面。
停用及清除中斷點
- 在 [中斷點] 視窗中按兩下下列中斷點:
Module1.vb, 行 9 字元 1
這會帶您到 [程式碼] 視窗中的中斷點位置:
If CInt(TimeString.Substring(0, 2)) < 12 Then
- 在 [中斷點] 視窗中,取消選取這個中斷點的核取方塊, 則會停用中斷點。
- 在 [中斷點] 視窗中按一下 [停用所有中斷點],然後按 [啟用所有中斷點],再按 [清除所有中斷點]。
疑難排解
- 您只能在可執行的程式碼行上建立中斷點。例如,備註和變數宣告不接受沒有預設值的中斷點。
- 您只能在函式宣告的第一行上指定函式中斷點。
- Microsoft 不支援 Visual Basic .NET 的資料中斷點。
參考
如需有關偵錯中斷點的詳細資訊,請參閱「Visual Studio .NET 線上說明」文件的下列主題: