F5调试启动失败,首要原因是launch.json配置错误或缺失:文件须置于.vscode目录下,configurations中type值需匹配已安装调试器(如"pwa-node"),且必须存在有效配置项;若提示配置缺失,可右键文件选择“Debug: Start Debugging”由VSCode自动推导生成。

断点调试启动失败:F5 没反应或报 launch.json 错误
VSCode 不是开箱即用就能调试,它依赖运行时环境 + 调试器配置。按 F5 没反应,大概率是没配好 launch.json 或当前文件不被支持。
- 确认已安装对应语言的调试扩展(如 Python 需
Python扩展,Node.js 需Node Debug Auto-attach) -
launch.json必须放在工作区根目录的.vscode/下,且configurations中的type值要和已安装调试器匹配(比如"type": "pwa-node"对应新版 Node 调试器) - 如果提示
Cannot launch program because corresponding configuration is missing,说明 VSCode 没识别到可调试入口 —— 尝试在待调试文件中右键 →Debug: Start Debugging,让 VSCode 自动推导生成launch.json
断点命中但变量面板空白或显示 Unavailable
断点停住了,但 Variables 面板里全是 Unavailable 或空,不是代码问题,而是调试上下文没加载出来。
- 检查是否在「正确栈帧」下查看:左下角调用栈(
Call Stack)里选中当前激活的帧(通常是顶层),否则变量作用域不对 - JavaScript/TypeScript 项目中,若用了打包工具(如 Webpack/Vite),需确保生成了有效的
sourceMap(devtool: 'source-map'或'inline-source-map'),否则调试器无法映射原始变量名 - Python 中若启用了
optimized模式(python -O)或字节码缓存干扰,变量也可能不可见;临时改用python -m pdb对比验证是否为 VSCode 调试器本身问题
想快速看某个表达式值,但每次都要拖进 Watch 面板太慢
没必要手动加 Watch —— VSCode 支持实时求值,而且快捷键比鼠标快得多。
- 光标停在任意表达式上(比如
user.name、items.filter(x => x.active)),按Shift + F9即刻执行并显示结果(弹出小浮层) - 想持久化观察?选中表达式 → 右键 →
Add to Watch,或直接拖进Watch区域;注意 Watch 表达式不支持赋值语句(x = 1会报错) - Watch 列表里的表达式默认随调试会话重置;如需跨会话保留,可在
launch.json中添加"console": "integratedTerminal"并配合debugger;语句辅助定位
调试时修改变量值没生效,或改完立刻被覆盖
VSCode 允许在暂停状态下编辑变量,但效果取决于语言运行时能力与变量类型,并非所有修改都“热生效”。
- 基本类型(
number、string、boolean)通常可直接双击修改并回车确认;但修改后若该变量被后续代码逻辑覆盖(比如循环中重新赋值),看起来就像“没生效” - 对象/数组属性可以逐个改,但不能整体替换(
obj = {a:1}会失败);尝试改obj.a = 2更可靠 - Python 中局部变量能改,但模块级变量、C 扩展对象、或被
__slots__锁定的类实例可能拒绝写入 —— 此时控制台输入pprint(obj)比强行改更实际
Call Stack 比刷新十次 Variables 都管用。


















