一、前言

  • 為什么要調試代碼?
    通過調試可以讓我們了解代碼運行過程中的代碼執行信息,比如變量的值等等。
    通常調試代碼是為了方便我們發現代碼中的bug。ken.io覺得熟練代碼調試技巧是成為合格程序員的基本要求。

  • 本篇開發環境
    1、操作系統: Windows 10 X64
    2、SDK: .NET Core 2.0 Preview
    3、IDE:VS Code 1.14

二、調試技巧

  • 設置斷點

在代碼編輯區域,點擊左側代碼行行號的左邊,即可在該行設置斷點

VS Code調試.NET Core代碼

  • 啟動調試

使用菜單:調試->啟動調試,或者使用快捷鍵F5啟動調試

VS Code調試.NET Core代碼

啟動調試后,程序啟動,並會停留在第一個斷點這一行。且這行的代碼並未執行。
VS Code會自動喚出Debug工作區,本文將逐步介紹常用功能。

  • Debug工作區介紹

1、頂部Debug工具欄

按鈕&快捷鍵 說明(ken.io的翻譯)
綠色向右箭頭(F5) 繼續執行程序,如果遇到斷點則會停留到該斷點
藍色向右箭頭(F10) 單步跳過:執行一條語句,但是遇到方法調用時不進入,直到方法執行完成后直接繼續。
藍色向下箭頭(F11) 單步調試:執行一條語句,遇到方法調用時會進入方法進行調試
藍色向上箭頭(Shift+F11) 單步跳出:執行當前當前方法並到下一步驟,如果當前方法有斷點則會到下一個斷點
綠色環形箭頭(Ctrl+Shift+F5) 重新啟動調試
紅色方塊(Shift+F5) 停止調試

2、變量區域

管理當前方法已經聲明的變量信息

VS Code調試.NET Core代碼

3、監視

可以添加要監視的表達式,比如i*2+5

VS Code調試.NET Core代碼

如果i的值發生變化,將會實時計算結果

4、調用堆棧

顯示當前調試的堆棧信息

VS Code調試.NET Core代碼

說明(ken.io的翻譯)
heelodotnet.dll 調用的動態鏈接庫
hellodotnet 命名空間
Program.Main(string[] args) 調用的類&方法
Line 當前調用方法的行號

如果有多個調用的鏈接庫可以鼠標單擊切換。查看變量等信息

5、斷點

管理斷點

VS Code調試.NET Core代碼

  • 調試過程中修改變量

選中要修改的標量,鼠標右鍵->設置值(快捷鍵F2也可以)

VS Code調試.NET Core代碼

設置值:

VS Code調試.NET Core代碼

回車鍵保存,然后F10進行單步跳過

VS Code調試.NET Core代碼

本來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 列斷點:在當前光標的下一行增加一個斷點