断点本身不运行代码,vscode中点击行号左侧红点仅标记位置,必须按f5或点击调试图标▶️启动调试会话才能生效;若用右上角绿色三角(run code)执行,则断点完全无效。

断点本身不运行代码,VSCode 里点一下行号左边的红点只是“标记位置”,真正让程序停在那里,必须启动调试会话(按 F5 或点调试图标 ▶️),否则代码照常执行、断点完全无效。
断点没反应?先确认是不是在“调试”而不是“运行”
这是新手最常卡住的地方:点了右上角绿色三角(Run Code)或终端里敲 node index.js,断点永远不会触发——因为那只是普通执行,没走调试协议。
- 必须打开“运行和调试”侧边栏(
Ctrl+Shift+D/Cmd+Shift+D),选中一个配置,再点 ▶️ 启动 - 如果配置列表为空,点齿轮图标生成
.vscode/launch.json,别跳过这步 - 断点启用状态看颜色:实心红点 ✅ 表示已激活;空心红点 ❌ 表示没加载进当前调试会话
launch.json 里这三个字段写错,90% 断点不生效
VSCode 不执行代码,它靠 launch.json 告诉底层调试器(如 debugpy、js-debug)怎么跑。配错就等于“发错指令”。
-
type:大小写敏感,"python"不能写成"Python";浏览器调试用"pwa-chrome",不是"chrome" -
program(Python)或file(Node.js):路径必须对。推荐用"${workspaceFolder}/src/main.py",别写./main.py(相对路径依赖cwd) -
cwd:影响import和文件读写。Python 报ModuleNotFoundError,八成是这里设错了目录
TypeScript/ESM 项目断点偏移或消失?盯紧 sourceMaps
你打在 index.ts 第12行,结果停在编译后的 index.js 第3行甚至跳过——这不是 VSCode 故障,是源码映射没对齐。
- TypeScript 项目:确保
tsconfig.json里"sourceMap": true,且没开"inlineSourceMap": true(VSCode 更认独立.map文件) - Webpack/Vite:构建时加
devtool: 'source-map'或build.sourcemap: true,并确认.js.map文件真生成了、跟.js同目录 - Node.js 调试:在
launch.json里显式加"sourceMaps": true,否则默认可能不启用 - ESM 项目记得在
package.json里写"type": "module",否则import会报错,断点根本加载不了
条件断点不是“高级功能”,而是避免手动点十次 F5 的刚需
循环里只想看第 5 次迭代?对象属性为特定值才停?硬等太耗时间,直接上条件断点。
- 右键行号左侧 →
Add Conditional Breakpoint→ 输入i === 5或user.role === "admin" - 支持完整表达式,但注意作用域:不能访问尚未声明的变量,也不能跨函数调用链引用局部变量
- 别写语句:
console.log(x)、if (x) {...}、x = 10都会失效,只接受纯表达式求值
最常被忽略的其实是 PATH 和 cwd:VSCode 调试器不读你的 shell 配置,node 找不到或模块导入失败,往往不是代码问题,而是环境没对齐。











