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 列表一致。
四、做完怎么确认¶
- 集成终端在项目目录下打开并跑通命令。
tasks.json里至少有一条任务可运行。- 断点能停住,变量值符合预期。
- 会看单文件差异并只暂存部分改动。
五、卡住了怎么排查¶
| 症状 | 多半是 | 先验证 | 处理 |
|---|---|---|---|
F5 没反应 |
没选调试配置,或语言扩展未装 | 看调试面板是否列出配置 | 选配置;装对应语言扩展 |
| 断点变空心圆 | 路径与运行文件不一致,或代码已更新 | 重启调试会话 | 重排断点;确认运行的是同一份文件 |
| 调试时终端没有输出 | console 设成了内部调试控制台 |
看输出面板 | 改成 integratedTerminal |
| 任务找不到 | tasks.json 不在 .vscode/ 下 |
看文件位置 | 放到 .vscode/tasks.json |
| 终端一打开就退出 | 默认 shell 配置错误 | 终端里手动执行 shell | 改 terminal.integrated.defaultProfile |
| 差异视图空白 | 文件未保存或已被提交 | git status 确认 |
保存后重新打开 |
| 远程环境里断点不生效 | 服务器上的代码与本地不同步 | 打开的文件路径 | 在远程窗口里打开服务器上的文件 |
六、为什么这样能成¶
终端与编辑器共享工作目录。 集成终端继承当前打开的项目路径,所以命令不用再 cd。
任务与调试配置是项目文件。 .vscode/ 里的 JSON 随仓库走,换人接手不用重新交代命令。
调试器按进程附加。 断点信息由调试适配器发给运行中的进程,所以必须保证调试器启动的就是你要调的那份代码。
七、边界与替代¶
- 不替代系统终端:装环境、改系统配置这类事仍然用系统终端或 SSH。
- 不做远程调试服务器进程:调试已部署的服务要用附加模式,且需要服务以调试参数启动。
- 不让任务文件承担 CI:CI 用仓库里的脚本,编辑器的任务只是本地快捷键。
- 断点不等于日志:生产环境看日志,别指望附加调试器。
八、官方资料¶
- 集成终端:https://code.visualstudio.com/docs/terminal/basics
- 任务:https://code.visualstudio.com/docs/debugtest/tasks
- 调试:https://code.visualstudio.com/docs/debugtest/debugging
- 源代码管理:https://code.visualstudio.com/docs/sourcecontrol/overview
- Python 调试:https://code.visualstudio.com/docs/python/debugging
核实日期:2026-10-21。