學習使用Visual Studio調試Visual Basic代碼(下)
Visual Studio 是功能完備的 IDE,可用于編碼、調試、測試和部署到任何平臺,Visual Studio使用 .NET 開發(fā) iOS、Android 和 Web 應用和游戲。
本文分步介紹了Visual Studio調試器的功能。在調試應用程序時,通常意味著您正在連接調試器來運行應用程序。當您執(zhí)行此操作時,調試器提供了許多方法來查看代碼在運行時的工作方式。您可以單步執(zhí)行代碼并查看存儲在變量中的值,可以在變量上設置監(jiān)視以查看值何時更改,可以檢查代碼的執(zhí)行路徑,查看代碼的分支是否正在運行等等。(點擊此處可查看上篇)
盡管演示應用程序是Visual Basic,但是大多數(shù)功能都適用于C#,C ++,F(xiàn)#,Python,JavaScript和Visual Studio支持的其他語言(F#不支持編輯并繼續(xù)。F#和JavaScript不支持自動窗口)。屏幕截圖在Visual Basic中。
在本教程中,您將了解:
- 啟動調試器并命中斷點。
- 學習命令以在調試器中單步執(zhí)行代碼
- 在數(shù)據(jù)提示和調試器窗口中檢查變量
- 檢查調用堆棧
- 按F5再次前進到斷點。
- 在代碼編輯器中,向下滾動并懸停在SendMessage方法中的Console.WriteLine方法上,直到綠色的“運行為單擊”按鈕“運行為單擊”出現(xiàn)在左側。該按鈕的工具提示顯示“在此處運行執(zhí)行”。
注意:“運行以單擊”按鈕是Visual Studio 2017中的新增功能(如果看不到綠色箭頭按鈕,請在本示例中使用F11代替,將調試器前進到正確的位置。)
- 單擊運行以單擊按鈕運行以單擊。 調試器前進到Console.WriteLine方法。 使用此按鈕類似于設置臨時斷點。“運行單擊”非常方便,可以在應用程序代碼的可見區(qū)域內快速移動(您可以單擊任何打開的文件)。
快速重啟您的應用
單擊調試工具欄中的重新啟動重新啟動應用程序按鈕(Ctrl + Shift + F5)。
當您按重新啟動時,與停止應用程序和重新啟動調試器相比,它節(jié)省了時間。 調試器在執(zhí)行代碼遇到的第一個斷點處暫停。
調試器再次在您之前在For循環(huán)內設置的斷點處停止。
使用數(shù)據(jù)提示檢查變量
允許您檢查變量的功能是調試器最有用的功能之一,并且有多種方法可以執(zhí)行此操作。通常,當您嘗試調試問題時,您試圖找出變量是否存儲了您希望它們在特定時間具有的值。
- 在name += letters[i] 語句上暫停時,將鼠標懸停在letters變量上,您會看到它的默認值,即數(shù)組“f” c中第一個元素的值。
- 接下來,將鼠標懸停在name變量上,您會看到它的當前值,一個空字符串。
- 多次按F5(或“調試”>“繼續(xù)”)以遍歷For循環(huán)幾次,再次在斷點處暫停,然后每次將名稱變量懸停以檢查其值。
變量的值隨For循環(huán)的每次迭代而變化,顯示f的值,然后顯示fr,然后顯示fre,依此類推。
通常,在調試時,您需要一種快速的方法來檢查變量的屬性值,以查看它們是否存儲了您希望它們存儲的值,而數(shù)據(jù)提示是一種很好的方法。
使用“自動”和“本地”窗口檢查變量
- 查看代碼編輯器底部的“自動”窗口。
如果已關閉,請在調試器中暫停時打開它,方法是選擇“調試”>“ Windows”>“自動”。
在“自動”窗口中,您會看到變量及其當前值。 “自動”窗口顯示當前行或上一行使用的所有變量(有關語言特定行為,請參見文檔)。
- 接下來,在“自動”窗口旁邊的標簽中,查看“本地”窗口。
- 展開字母變量以顯示其包含的元素。
Locals窗口向您顯示當前作用域(即當前執(zhí)行上下文)中的變量。
設置手表
在主代碼編輯器窗口中,右鍵單擊名稱變量,然后選擇“添加監(jiān)視”。
“監(jiān)視”窗口在代碼編輯器的底部打開。 您可以使用“監(jiān)視”窗口來指定要關注的變量(或表達式)。
現(xiàn)在,您在name變量上設置了一個監(jiān)視,當您在調試器中移動時,可以看到其值更改。與其他變量窗口不同,“監(jiān)視”窗口始終顯示您正在監(jiān)視的變量(超出范圍時它們將顯示為灰色)。
檢查調用堆棧
- 在For循環(huán)中暫停時,單擊Call Stack窗口,默認情況下在右下方窗格中打開該窗口。
- 如果已關閉,請在調試器中暫停時打開它,方法是選擇“調試”>“ Windows”>“調用堆?!薄?/span>
- 單擊F11幾次,直到您看到調試器在SendMessage方法中暫停。 查看“調用堆?!贝翱凇?/span>
“調用堆?!贝翱陲@示了調用方法和函數(shù)的順序。第一行顯示當前功能(此應用程序中的SendMessage方法)。第二行顯示從Main方法調用了SendMessage,依此類推。
注意:在某些IDE(例如Eclipse)中,“調用堆棧”窗口類似于“調試”透視圖。
調用堆棧是檢查和了解應用程序執(zhí)行流程的好方法。
您可以雙擊一行代碼來查看該源代碼,這還會更改調試器正在檢查的當前范圍。 此操作不會使調試器前進。
您還可以使用“調用堆棧”窗口中的右鍵單擊菜單來執(zhí)行其他操作。 例如,您可以將斷點插入到指定的函數(shù)中,使用“運行到光標”前進調試器,然后檢查源代碼。
更改執(zhí)行流程
- 按兩次F11鍵運行Console.WriteLine方法。
- 在調試器在SendMessage方法調用中暫停的情況下,使用鼠標抓住左側的黃色箭頭(執(zhí)行指針),然后將黃色箭頭向上移動一行,回到Console.WriteLine。
- 按F11。 調試器重新運行Console.WriteLine方法(您在控制臺窗口輸出中看到此方法)。
通過更改執(zhí)行流程,您可以執(zhí)行諸如測試不同代碼執(zhí)行路徑或重新運行代碼的操作,而無需重新啟動調試器。
注意:通常,您需要謹慎使用此功能,并且在工具提示中會看到警告。您可能還會看到其他警告。移動指針不能將您的應用程序還原到較早的應用程序狀態(tài)。
- 按F5鍵繼續(xù)運行該應用程序。
恭喜您完成本教程(點擊此處可查看上篇)!后期會持續(xù)更新本系列教程,敬請期待!
喜歡該產品的朋友可以點擊下載Visual Studio試用版免費體驗~
想要購買Visual Studio正版授權,或了解更多產品信息請點擊【咨詢在線客服】