來自:ken的雜談
連結:http://www.cnblogs.com/ken-io/p/dotnet-core-qucikstart-debug-vscode-skill.html
一、前言
-
為什麼要除錯程式碼?
透過除錯可以讓我們瞭解程式碼執行過程中的程式碼執行資訊,比如變數的值等等。
通常除錯程式碼是為了方便我們發現程式碼中的bug。ken.io覺得熟練程式碼除錯技巧是成為合格程式員的基本要求。 -
本篇開發環境
1、作業系統:Windows 10 X64
2、SDK:.NET Core 2.0 Preview
3、IDE:VS Code 1.14
二、除錯技巧
-
設定斷點
在程式碼編輯區域,點選左側程式碼行行號的左邊,即可在該行設定斷點
- 啟動除錯
使用選單:除錯->啟動除錯,或者使用快捷鍵F5啟動除錯
啟動除錯後,程式啟動,並會停留在第一個斷點這一行。且這行的程式碼並未執行。
VS Code會自動喚出Debug工作區,本文將逐步介紹常用功能。
-
Debug工作區介紹
1、頂部Debug工具欄
按鈕&快捷鍵 | 說明(ken.io的翻譯) |
---|---|
綠色向右箭頭(F5) | 繼續執行程式,如果遇到斷點則會停留到該斷點 |
藍色向右箭頭(F10) | 單步跳過:執行一條陳述句,但是遇到方法呼叫時不進入,直到方法執行完成後直接繼續。 |
藍色向下箭頭(F11) | 單步除錯:執行一條陳述句,遇到方法呼叫時會進入方法進行除錯 |
藍色向上箭頭(Shift+F11) | 單步跳出:執行當前當前方法併到下一步驟,如果當前方法有斷點則會到下一個斷點 |
綠色環形箭頭(Ctrl+Shift+F5) | 重新啟動除錯 |
紅色方塊(Shift+F5) | 停止除錯 |
2、變數區域
管理當前方法已經宣告的變數資訊
3、監視
可以新增要監視的運算式,比如i*2+5
如果i的值發生變化,將會實時計算結果
4、呼叫堆疊
顯示當前除錯的堆疊資訊
項 | 說明(ken.io的翻譯) |
---|---|
heelodotnet.dll | 呼叫的動態連結庫 |
hellodotnet | 名稱空間 |
Program.Main(string[] args) | 呼叫的類&方法 |
Line | 當前呼叫方法的行號 |
如果有多個呼叫的連結庫可以滑鼠單擊切換。檢視變數等資訊
5、斷點
管理斷點
-
除錯過程中修改變數
選中要修改的標量,滑鼠右鍵->設定值(快捷鍵F2也可以)
設定值:
回車鍵儲存,然後F10進行單步跳過
本來i=0,randomNum=28,如果繼續執行result=false,將無法執行if陳述句塊。
修改後randomNum=0,執行後result=true,讓本來會被跳過的if陳述句塊可以被除錯。
三、VS Code除錯 .NET Core快捷鍵總結
快捷鍵 | 說明(ken.io的翻譯) |
---|---|
快捷鍵:F5 | 繼續執行程式,如果遇到斷點則會停留到該斷點 |
快捷鍵:F10 | 單步跳過:執行一條陳述句,但是遇到方法呼叫時不進入,直到方法執行完成後直接繼續。 |
快捷鍵:F11 | 單步除錯:執行一條陳述句,遇到方法呼叫時會進入方法進行除錯 |
快捷鍵:Shift+F11 | 單步跳出:執行當前當前方法併到下一步驟,如果當前方法有斷點則會到下一個斷點 |
快捷鍵:Ctrl+Shift+F5 | 重新啟動除錯 |
快捷鍵:Shift+F5 | 停止除錯 |
快捷鍵:F9 | 切換斷點:跳到下一個斷點 |
快捷鍵:Shift+F9 | 列斷點:在當前游標的下一行增加一個斷點 |
朋友會在“發現-看一看”看到你“在看”的內容