學(xué)習(xí)使用Visual Studio調(diào)試Visual Basic代碼(上)
Visual Studio 是功能完備的 IDE,可用于編碼、調(diào)試、測試和部署到任何平臺,Visual Studio使用 .NET 開發(fā) iOS、Android 和 Web 應(yīng)用和游戲。
本文分步介紹了Visual Studio調(diào)試器的功能。在調(diào)試應(yīng)用程序時,通常意味著您正在連接調(diào)試器來運(yùn)行應(yīng)用程序。當(dāng)您執(zhí)行此操作時,調(diào)試器提供了許多方法來查看代碼在運(yùn)行時的工作方式。您可以單步執(zhí)行代碼并查看存儲在變量中的值,可以在變量上設(shè)置監(jiān)視以查看值何時更改,可以檢查代碼的執(zhí)行路徑,查看代碼的分支是否正在運(yùn)行等等。(點(diǎn)擊此處可查看下篇)
盡管演示應(yīng)用程序是Visual Basic,但是大多數(shù)功能都適用于C#,C ++,F(xiàn)#,Python,JavaScript和Visual Studio支持的其他語言(F#不支持編輯并繼續(xù)。F#和JavaScript不支持自動窗口)。屏幕截圖在Visual Basic中。
在本教程中,您將了解:
- 啟動調(diào)試器并命中斷點(diǎn)。
- 學(xué)習(xí)命令以在調(diào)試器中單步執(zhí)行代碼
- 在數(shù)據(jù)提示和調(diào)試器窗口中檢查變量
- 檢查調(diào)用堆棧
您必須安裝Visual Studio 2019和.NET Core跨平臺開發(fā)工作負(fù)載。
如果您需要安裝工作負(fù)載但已經(jīng)擁有Visual Studio,請轉(zhuǎn)到“工具” >“ 獲取工具和功能...”,這將打開Visual Studio安
裝程序。將啟動Visual Studio安裝程序。選擇.NET Core跨平臺開發(fā)工作負(fù)載,然后選擇Modify。
建立專案
首先,您將創(chuàng)建一個.NET Core控制臺應(yīng)用程序項(xiàng)目。在添加內(nèi)容之前,項(xiàng)目類型將隨您需要的所有模板文件一起提供。
打開Visual Studio。
- 如果未打開啟動窗口,請選擇“ 文件” >“ 啟動窗口”。
- 在開始窗口中,選擇創(chuàng)建一個新項(xiàng)目。
- 在“創(chuàng)建新項(xiàng)目”窗口上,在搜索框中輸入或鍵入console。接下來,從“語言”列表中選擇“Visual Basic”,然后從“平臺”列表中選擇“Windows ”。 應(yīng)用語言和平臺過濾器后,選擇Console App(.NET Core)模板,然后選擇Next。
注意:如果看不到控制臺應(yīng)用程序(.NET Core)模板,則可以從“創(chuàng)建新項(xiàng)目”窗口中進(jìn)行安裝。在“找不到您要的東西嗎?”消息,選擇安裝更多工具和功能鏈接。然后,在Visual Studio安裝程序中,選擇.NET Core跨平臺開發(fā)工作負(fù)載。
- 在“配置新項(xiàng)目”窗口中,在“項(xiàng)目名稱”框中鍵入或輸入get-started-debugging。然后,選擇創(chuàng)建。Visual Studio將打開您的新項(xiàng)目。
創(chuàng)建應(yīng)用
在Program.vb中,將所有默認(rèn)代碼替換為以下代碼:
Imports System Class ArrayExample Public Shared Sub Main() Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c} Dim name As String = "" Dim a As Integer() = New Integer(9) {} For i As Integer = 0 To letters.Length - 1 name += letters(i) a(i) = i + 1 SendMessage(name, a(i)) Next Console.ReadKey() End Sub Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer) Console.WriteLine("Hello, " & name & "! Count to " & msg) End Sub End Class啟動調(diào)試器
按F5(調(diào)試>啟動調(diào)試)或調(diào)試工具欄中的啟動調(diào)試按鈕啟動調(diào)試。
F5在調(diào)試器附加到應(yīng)用程序進(jìn)程的情況下啟動了該應(yīng)用程序,但是現(xiàn)在還沒有做任何特別的事情來檢查代碼。因此,該應(yīng)用程序剛剛加載,您將看到控制臺輸出。
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10在本教程中,我們將使用調(diào)試器仔細(xì)查看該應(yīng)用程序,并了解調(diào)試器功能。
按下紅色的Stop Stop Debugging按鈕(Shift + F5)來停止調(diào)試器。在控制臺窗口中,按一個鍵以關(guān)閉控制臺窗口。
設(shè)置斷點(diǎn)并啟動調(diào)試器
在Main函數(shù)的For循環(huán)中,通過單擊以下代碼行的左邊距來設(shè)置斷點(diǎn):name += letters(i)
在設(shè)置斷點(diǎn)的地方會出現(xiàn)一個紅色的圓圈斷點(diǎn)。
斷點(diǎn)是可靠調(diào)試的最基本和必不可少的功能之一。斷點(diǎn)指示Visual Studio應(yīng)該在何處掛起正在運(yùn)行的代碼,以便您可以查看變量的值,內(nèi)存的行為或代碼的分支是否正在運(yùn)行。
- 按F5或“開始調(diào)試”按鈕“開始調(diào)試”,應(yīng)用程序啟動,調(diào)試器運(yùn)行到設(shè)置斷點(diǎn)的代碼行。
黃色箭頭表示調(diào)試器在其上暫停的語句,該語句還在同一點(diǎn)暫停應(yīng)用程序執(zhí)行(該語句尚未執(zhí)行)。
如果該應(yīng)用程序尚未運(yùn)行,則F5啟動調(diào)試器并在第一個斷點(diǎn)處停止。否則,F(xiàn)5繼續(xù)將應(yīng)用程序運(yùn)行到下一個斷點(diǎn)。當(dāng)您知道要詳細(xì)檢查的代碼行或代碼段時,斷點(diǎn)是一項(xiàng)有用的功能。
使用步驟命令在調(diào)試器中導(dǎo)航代碼
通常,我們在這里使用鍵盤快捷鍵,因?yàn)檫@是快速在調(diào)試器中執(zhí)行您的應(yīng)用程序的好方法(括號中顯示了等效的命令,例如菜單命令)。
- 在Main方法的For循環(huán)中暫停時,按兩次F11(或選擇Debug> Step Into)以前進(jìn)到SendMessage方法調(diào)用。
- 兩次按F11鍵后,您應(yīng)處于此代碼行:SendMessage(name, a(i))
再按一次F11進(jìn)入SendMessage方法。
黃色指針前進(jìn)到SendMessage方法中。
F11是單步執(zhí)行命令,可一次使應(yīng)用程序執(zhí)行一個語句。F11是最詳細(xì)檢查執(zhí)行流程的好方法。 (為了更快地遍歷代碼,我們還會向您顯示其他一些選項(xiàng)。)默認(rèn)情況下,調(diào)試器會跳過非用戶代碼。
假設(shè)您已經(jīng)完成了SendMessage方法的檢查,并且希望退出該方法,但要保留在調(diào)試器中。 您可以使用“跳出”命令來執(zhí)行此操作。
- 按Shift + F11(或“調(diào)試”>“跳出”)。
此命令將繼續(xù)執(zhí)行應(yīng)用程序(并前進(jìn)調(diào)試器),直到返回當(dāng)前方法或函數(shù)。
您應(yīng)該回到Main方法的For循環(huán)中,在SendMessage方法調(diào)用處暫停。
多次按F11鍵,直到再次返回到SendMessage方法調(diào)用。
在方法調(diào)用處暫停時,按一次F10(或選擇“調(diào)試”>“跳過”)。
請注意,這次調(diào)試器不會進(jìn)入SendMessage方法。 F10使調(diào)試器前進(jìn),而無需進(jìn)入應(yīng)用程序代碼中的函數(shù)或方法(該代碼仍在執(zhí)行)。通過在SendMessage方法調(diào)用上按F10(而不是F11),跳過了SendMessage的實(shí)現(xiàn)代碼(也許我們現(xiàn)在不感興趣)。
本文還沒有結(jié)束哦,點(diǎn)擊此處可查看下篇。
喜歡該產(chǎn)品的朋友可以點(diǎn)擊下載Visual Studio試用版免費(fèi)體驗(yàn)~
想要購買Visual Studio正版授權(quán),或了解更多產(chǎn)品信息請點(diǎn)擊【咨詢在線客服】