launch.json 不该手写,必须通过 vscode 齿轮图标自动生成,否则易遗漏 env、cwd、prelaunchtask 等关键字段,导致断点不触发、路径报错或模块找不到;打开「运行和调试」侧边栏(ctrl+shift+d),点击顶部 ⚙️ 图标,vscode 会根据已安装扩展(如 python、c/c++)自动列出模板并生成带完整注释的配置。

launch.json 不该手写,必须通过 VSCode 的齿轮图标自动生成——手动填容易漏掉 env、cwd、preLaunchTask 等关键字段,导致断点不触发、路径报错或模块找不到。
用齿轮图标生成,别自己敲 JSON
打开「运行和调试」侧边栏(Ctrl+Shift+D),点击顶部 ⚙️ 图标,VSCode 会根据你已安装的扩展(如 Python、C/C++、Node.js)列出对应模板。选中后生成的 launch.json 带完整注释,字段语义清晰,且自动适配当前环境。
如果没看到目标语言选项,说明:
- 对应调试扩展未安装(例如 Go 调试需官方
Go扩展,不是Debugger for Go) - 扩展已禁用,或当前工作区没识别出语言上下文(比如没打开
.py文件就去点齿轮)
program 路径写错,调试直接失败
program 字段必须指向真实可执行入口,且路径解析依赖 cwd。常见错误是写相对路径却没设 cwd,结果 VSCode 在工作区根目录下找文件,自然报“file not found”。
实操建议:
- 统一用变量写法:
"program": "${workspaceFolder}/dist/index.js"或"program": "${file}"(Python 单文件场景) - C++ 必须填编译后的二进制路径,例如
"${workspaceFolder}/build/hello",不能填.cpp源文件 - TypeScript 项目里,
program只能指向.js,不是.ts;否则断点打不进去 - Windows 下路径分隔符用正斜杠
/,别用反斜杠\
断点不命中?先查 sourcemap、-g 编译、解释器路径
断点变空心圆、F5 后直接跑完、悬停显示 undefined——不是编辑器坏了,而是调试链路脱节。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
按语言快速排查:
-
TypeScript/JS:确认
sourceMaps: true+outFiles: ["${workspaceFolder}/dist/**/*.js"],并检查dist/index.js.map是否存在、sources字段是否指向你 workspace 里的.ts路径 -
C/C++:90% 是编译没加
-g。检查tasks.json的args是否含"-g";若用 CMake,确保set(CMAKE_BUILD_TYPE Debug) -
Python:右下角确认解释器路径是否为虚拟环境内的
python;模块导入失败时,优先在launch.json加"env": {"PYTHONPATH": "${workspaceFolder}/src"},而非硬改sys.path
前后端一起调试,靠 compounds 不靠单个 configuration
launch.json 的单个 configuration 只能启动一个进程。所谓“全栈调试”,本质是组合多个配置:前端用 chrome 类型 launch 自动开浏览器,后端用 node 类型 attach 连接已启动的服务。
关键动作:
- 后端配置必须设
"request": "attach",端口与命令行一致(如node --inspect=9229 server.js→"port": 9229) - 前端配置推荐
"type": "chrome","url": "http://localhost:3000",并配好"webRoot" - 在
launch.json根级加compounds字段,把两个name组合起来,VSCode 会先等launch完成(服务就绪),再执行attach
最容易被忽略的是:后端服务必须在 VSCode 尝试 attach 前已启动并监听端口。别指望 compounds 自动帮你拉起后端进程——那得靠 preLaunchTask 或外部脚本。










