必须手动启用 debug.inlineValues 且调试器需支持 DAP v1.67+,仅装扩展或设断点无效;该设置为全局开关,启用后单步暂停时才显示简单变量内联值。

必须手动开启 debug.inlineValues,且调试器版本和语言支持缺一不可——仅靠装扩展或打断点不会自动生效。
确认 debug.inlineValues 已启用
这个开关是内联值显示的总闸门,VSCode 默认不打开它。即使你用了最新版 debugpy 或 Node.js 调试器,只要这个配置是 false,编辑器右侧就绝不会出现黄色变量值。
- 快捷方式:按下
Ctrl+,(Windows/Linux)或Cmd+,(macOS),在搜索框输入debug inline values - 找到
Debug: Inline Values选项,确保复选框已勾选(值为true) - 该设置是全局级的,无需项目级重复配置;改完无需重启 VSCode,下一次调试会话立即生效
检查调试器是否满足 DAP v1.67+ 协议要求
内联值依赖调试适配器协议(DAP)的特定能力,老版本调试器直接无视该配置。不是“装了 Python 扩展就行”,而是得看它底层用的 debugpy 或 js-debug 版本。
- Python:需
debugpy ≥ 1.8.0,运行pip show debugpy验证;低于此版本即使勾选也无反应 - Node.js / TypeScript:依赖内置
js-debug,VSCode 1.85+ 自带,但若你禁用了它或回退过旧版,需重置调试器 - Go、C# 等语言同理,查对应调试扩展的 release note,确认明确写了 “supports inline values” 或 “DAP v1.67+”
避开常见失效场景
开了开关、调试器也够新,但还是看不到值?大概率卡在这几个隐形条件上。
- 只在**单步调试暂停状态**下显示(
F10/F11停住时),运行中或未命中断点时空白是正常的 - 复杂表达式不支持:比如
arr.map(x => x * 2)[0]或带副作用的调用(func())不会内联,只支持简单变量、属性访问(user.name)、数组索引(list[0]) - Source map 错位会导致值挂错行——尤其 TypeScript/webpack 项目,确保
sourceMaps: true且outFiles路径匹配生成文件位置 - 某些主题或字体设置会让内联文字被裁掉:尝试临时切到
Default Dark+主题,并确认editor.inlayHint.padding为true
验证是否真生效的小技巧
别只盯着断点那行——把光标停在有变量赋值的行(比如 const count = items.length;),然后按 F10 单步到下一行,此时 count 的值才会以内联形式出现在上一行末尾。很多人误以为“停在赋值行就该显示”,其实它只在**后续执行行可见作用域变量**时渲染。
最容易被忽略的是:内联值不显示在 console.log 或函数调用行,也不显示闭包外不可访问的变量;它只反映当前栈帧里、静态可推导出作用域的变量快照。


















