跳转至

VS Code 调试与终端

一、这页讲什么

编辑器自带终端、任务运行和断点调试。这些能力拼起来能替代「改代码 → 切窗口跑 → 切回来查错」的往返。

读完能做到:用集成终端跑项目命令;用 .vscode/tasks.json 固定常用命令;用 .vscode/launch.json 给 Python 脚本打断点;在源代码管理面板里看改动差异。

二、开始之前

项 内容
版本与日期 VS Code 1.10x;2026-10-21 核实
预计耗时 25 分钟
前置 已装 Python 扩展;项目能靠命令行跑起来
风险级别 低:只新增 .vscode/ 下的配置

三、动手做

1. 用集成终端

Ctrl 加反引号键打开终端,默认在当前项目根目录。切换 shell 用终端面板右上角的下拉菜单;需要多个终端时点终端面板的 +。

看到这个就算成:终端提示符显示的是项目目录,且不再需要另开外部终端窗口。

2. 把常用命令写进 tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "run app",
      "type": "shell",
      "command": "python -m app",
      "group": "build"
    }
  ]
}

命令面板 → Tasks: Run Task → 选 run app。

看到这个就算成:任务面板里能选到这条命令,运行结果输出在终端面板。

3. 配 launch.json 打断点

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "debug app",
      "type": "debugpy",
      "request": "launch",
      "program": "${workspaceFolder}/app.py",
      "console": "integratedTerminal"
    }
  ]
}

在代码行号左侧点一下加断点,按 F5 启动,程序停在断点处,左侧能看到变量值与调用栈。

看到这个就算成:程序停在断点,能展开查看变量的当前值。

4. 继续、单步与条件断点

操作 按键
继续运行 F5
单步跳过 F10
单步进入 F11
停止 Shift + F5

右键断点可以设条件(只在某次循环进入)或日志点(打印不出停)。循环里第 100 次才出问题时用条件断点。

看到这个就算成:用条件断点让程序只在目标情况下停下。

5. 看 Git 差异

左侧源代码管理面板列出改动文件,点文件打开差异视图:左侧是已提交版本,右侧是当前内容。行号旁边可以暂存单个改动块。

看到这个就算成:能指出自己改动了哪几行,并只暂存其中一块。

6. 命令行也能看差异

$ git diff --stat
 app.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

看到这个就算成:面板里看到的文件与 git diff --stat 列表一致。

四、做完怎么确认

  1. 集成终端在项目目录下打开并跑通命令。
  2. tasks.json 里至少有一条任务可运行。
  3. 断点能停住,变量值符合预期。
  4. 会看单文件差异并只暂存部分改动。

五、卡住了怎么排查

症状 多半是 先验证 处理
F5 没反应 没选调试配置,或语言扩展未装 看调试面板是否列出配置 选配置;装对应语言扩展
断点变空心圆 路径与运行文件不一致,或代码已更新 重启调试会话 重排断点;确认运行的是同一份文件
调试时终端没有输出 console 设成了内部调试控制台 看输出面板 改成 integratedTerminal
任务找不到 tasks.json 不在 .vscode/ 下 看文件位置 放到 .vscode/tasks.json
终端一打开就退出 默认 shell 配置错误 终端里手动执行 shell 改 terminal.integrated.defaultProfile
差异视图空白 文件未保存或已被提交 git status 确认 保存后重新打开
远程环境里断点不生效 服务器上的代码与本地不同步 打开的文件路径 在远程窗口里打开服务器上的文件

六、为什么这样能成

终端与编辑器共享工作目录。 集成终端继承当前打开的项目路径,所以命令不用再 cd。

任务与调试配置是项目文件。 .vscode/ 里的 JSON 随仓库走,换人接手不用重新交代命令。

调试器按进程附加。 断点信息由调试适配器发给运行中的进程,所以必须保证调试器启动的就是你要调的那份代码。

七、边界与替代

  • 不替代系统终端:装环境、改系统配置这类事仍然用系统终端或 SSH。
  • 不做远程调试服务器进程:调试已部署的服务要用附加模式,且需要服务以调试参数启动。
  • 不让任务文件承担 CI:CI 用仓库里的脚本,编辑器的任务只是本地快捷键。
  • 断点不等于日志:生产环境看日志,别指望附加调试器。

八、官方资料

核实日期:2026-10-21。