VS Code扩展开发调试时断点显示「已设置但未绑定」不生效
VS Code 扩展调试断点无法绑定排查指引
已知问题触发表现
- 调试未启动时断点为实心激活状态,启动调试后立即转为空心,伴随提示
breakpoint set but not yet bound - 跨VS Code 1.52正式版、1.53.0正式版、Insiders预览版问题稳定复现
- 近期未修改项目代码、launch配置、全局VS Code设置,无程序崩溃历史记录
- 直接按F5启动、启动扩展运行、启动扩展测试三类调试入口均复现断点失效问题
可优先排查的成因与对应操作
- 编译产物路径匹配异常
即使未手动修改配置,也可能存在编译任务静默失败、输出路径偏移的情况:- 手动执行项目的编译命令(如
npm run compile),确认终端无报错,且out/dist目录下正常生成对应源码的编译后js文件 - 检查
launch.json中outFiles字段的路径通配符,和实际编译输出路径完全匹配,避免层级写错 - 核对
tsconfig.json中的outDir配置,确认未被工具自动篡改
- 手动执行项目的编译命令(如
- 调试端口被残留进程占用
VS Code扩展调试默认使用V8调试端口9229,残留的调试进程会占用端口导致绑定失败:- 在终端执行
lsof -i :9229,杀掉所有占用该端口的残留进程后重试调试 - 临时在全局VS Code设置中添加
"debug.javascript.usePreview": false,切回旧版调试适配器重启VS Code验证
- 在终端执行
- 工作区/全局调试缓存异常
跨版本VS Code调试时旧缓存未兼容也会触发绑定失败:- 删除项目根目录
.vscode文件夹内除launch.json、tasks.json外的所有缓存文件,重新执行窗口重载 - macOS环境下可直接删除全局缓存目录
~/Library/Application Support/Code/CachedData,重启VS Code后重试
- 删除项目根目录
- 全局依赖版本隐式变动
未修改项目配置的前提下,全局安装的扩展开发工具可能被自动更新:- 执行
npm ls -g核对全局安装的typescript、vsce、@vscode/test-electron版本,和项目兼容要求对齐 - 临时删除项目
node_modules与package-lock.json,重新安装依赖后重试编译调试
- 执行
当前使用的开发环境信息
Version: 1.53.0 Commit: 8490d3dde47c57ba65ec40dd192d014fd2113496 Date: 2021-02-03T16:01:04.046Z (5 days ago) Electron: 11.2.1 Chrome: 87.0.4280.141 Node.js: 12.18.3 V8: 8.7.220.31-electron.0 OS: Darwin x64 19.6.0
内容的提问来源于stack exchange,提问作者macasas
相关产品推荐
相关产品推荐

