vscode 調(diào)試

VS Code 中使用 斷點調(diào)試(debug) 是非常核心的開發(fā)技能,下面我給你完整講一遍,從最基礎(chǔ)到進階功能??


?? 一、基本步驟:設(shè)置斷點與啟動調(diào)試

1?? 打開調(diào)試面板

點擊左側(cè)的 “運行和調(diào)試”圖標(biāo)(快捷鍵:Ctrl + Shift + D / macOS Cmd + Shift + D


2?? 設(shè)置斷點

在代碼中點擊行號左邊的灰色區(qū)域(或按 F9
?? 會出現(xiàn)一個紅點(即斷點)

斷點可以放在任何可執(zhí)行的代碼行,比如:

function add(a, b) {
  const result = a + b; // ← 在這里點一下左邊設(shè)置斷點
  return result;
}

add(1, 2);

3?? 啟動調(diào)試

有兩種常見方式:

? 方式一:快速調(diào)試

如果是簡單的腳本(例如 Python、Node.js、C、Dart 等),
直接點擊頂部的 “運行和調(diào)試 ??” 按鈕,VS Code 會自動檢測調(diào)試環(huán)境。

? 方式二:配置 launch.json

更復(fù)雜的項目需要配置啟動項:

  1. 點擊調(diào)試面板上方的齒輪 ??

  2. 選擇對應(yīng)語言環(huán)境,比如:

    • Node.js
    • Python
    • Flutter
    • C/C++
    • Dart 等等
  3. VS Code 會生成 .vscode/launch.json 文件

例如 Node.js 的配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "啟動程序",
      "program": "${file}"  // 調(diào)試當(dāng)前文件
    }
  ]
}

然后點擊綠色 ?? 啟動。


?? 二、調(diào)試時常用操作

操作 快捷鍵(Windows / macOS) 說明
?? 繼續(xù)執(zhí)行 F5 跳到下一個斷點
? 單步跳過 F10 執(zhí)行當(dāng)前行,不進入函數(shù)
?? 單步進入 F11 進入當(dāng)前行的函數(shù)體
?? 單步跳出 Shift + F11 跳出當(dāng)前函數(shù)
? 停止調(diào)試 Shift + F5 停止運行
? 暫停執(zhí)行 Ctrl + F6 暫停程序(在運行中)

?? 三、查看變量與調(diào)用棧

調(diào)試時,VS Code 會出現(xiàn)一個調(diào)試工具欄和側(cè)邊欄:

  • 變量(Variables):顯示當(dāng)前作用域內(nèi)的變量值
  • 監(jiān)視(Watch):可以添加你想實時查看的變量表達(dá)式
  • 調(diào)用堆棧(Call Stack):查看當(dāng)前函數(shù)調(diào)用鏈
  • 斷點(Breakpoints):管理所有斷點,支持條件斷點和日志斷點

?? 四、進階技巧

?? 條件斷點

右鍵點擊斷點 → “編輯斷點” → 設(shè)置條件
例如:

i === 5

程序執(zhí)行到 i=5 時才會停。


?? 日志斷點(Logpoint)

右鍵斷點 → “添加日志斷點”
輸入:

i 的值是:{i}

這不會暫停程序,只會在控制臺輸出調(diào)試信息(很像 console.log)。


?? 熱重載調(diào)試(Flutter / React / Vue)

對于 Flutter、React、Vue 等框架,VS Code 都支持「熱重載」:

  • 改代碼后無需重新啟動調(diào)試
  • 使用 Ctrl + S(保存) 即自動更新運行中的 App

?? 五、各語言調(diào)試示例

語言 調(diào)試支持方式
Node.js 內(nèi)置支持,直接 F5
Python 安裝插件:ms-python.python
Flutter / Dart 安裝 DartFlutter 插件
C / C++ 安裝 C/C++ 插件 (ms-vscode.cpptools),配置 launch.json
Java 安裝 Extension Pack for Java
Vue / React 安裝 Debugger for Chrome 或使用 Edge 調(diào)試

要我根據(jù)你正在用的語言(例如:Dart / Flutter / Node / Vue / Python
給你示范具體的 launch.json 調(diào)試配置嗎?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容