VSCode调试器UI分为调试侧边栏、顶部控制栏、编辑器内标记和底部状态栏四部分。侧边栏含变量、监视、调用堆栈、断点四标签;控制栏提供继续、单步跳过/步入/跳出、重启、停止功能;编辑器内支持断点、日志点、行高亮与debugger语句;状态栏显示配置与状态,悬停有操作提示。

VSCode 的调试器 UI 并非一个黑盒,而是一套高度可交互、分层清晰的控制界面,核心围绕“控制执行流”和“观察程序状态”两大目标组织。理解每个区域的作用与联动逻辑,能显著提升断点调试效率。
左侧:调试侧边栏(Debug Sidebar)
这是调试信息的集中展示区,顶部有调试启动配置下拉菜单和绿色“开始调试”按钮。下方分四个标签页:
- 变量(Variables):显示当前作用域的局部变量、闭包变量、全局变量。支持展开对象/数组,右键可复制值、设置值(部分语言支持)、或“在控制台中求值”;嵌套过深时可点击“全部展开”快速浏览。
-
监视(Watch):手动添加表达式(如
user.profile.name或arr.length > 5),实时计算并刷新结果。适合跟踪复杂计算或跨作用域的值变化,不随调用栈切换自动更新,需主动维护表达式列表。 - 调用堆栈(Call Stack):按执行顺序列出函数调用链,顶部为当前执行位置。点击某一层可跳转到对应源码行,并加载该帧的局部变量。异步调试中常出现多个并行堆栈(如 Node.js 的 event loop task),可从中选择上下文。
- 断点(Breakpoints):汇总所有已设断点(行断点、条件断点、日志点、异常断点)。支持启用/禁用单个或批量断点,右键可编辑条件、命中次数或转换为日志点;JavaScript 中还可看到“函数断点”和“DOM 断点”(需扩展支持)。
顶部:调试控制栏(Debug Toolbar)
出现在编辑器顶部(触发调试后自动浮现),提供核心执行控制按钮,从左到右依次为:
- 继续(F5):运行至下一个断点或程序结束;若当前停在异常处,继续会直接退出调试会话。
- 单步跳过(F10):逐行执行,不进入函数内部;对 async/await 行会等待 Promise 完成后再停。
-
单步步入(F11):进入当前行调用的函数体(包括库函数,除非配置了
skipFiles);TypeScript 用户注意:若未生成 source map,可能跳转到 .js 文件。 - 单步跳出(Shift+F11):执行完当前函数剩余部分,返回上一层调用位置;对异步函数行为一致(如 await 后续代码仍属当前函数)。
- 重启(Ctrl+Shift+F5):重新加载调试会话,重置所有状态(变量、断点命中计数等),比停止再启动更快捷。
- 停止(Shift+F5):终止调试进程;Node.js 会杀掉子进程,浏览器调试则断开连接。
编辑器内:行内调试标记与高亮
代码行号左侧的活动区域是调试交互最频繁的位置:
- 灰色圆点表示已设断点;红色实心圆点表示启用且可达的断点;空心红点表示被禁用;黄色菱形是日志点(Logpoint),点击可编辑输出模板,如
console.log("user id:", {id})。 - 当前执行行由黄色高亮背景标识;若为条件断点未满足,会显示黄色虚线边框;暂停时,当前作用域变量名旁会出现浅蓝色小箭头,悬停可查看值。
- 行内可右键添加“调试器语句”(
debugger;),等效于行断点,适合临时插入、无需保存的调试点。
底部状态栏与内联提示
调试进行时,状态栏左侧显示当前调试配置名称、运行状态(如 “运行中”、“已暂停”)及调试器类型(如 “Node.js”、“Chrome”);点击可快速切换配置或打开配置文件。
当鼠标悬停在变量、表达式或调试控制按钮上时,VSCode 会显示简洁的操作提示(如 “继续执行 (F5)”);在变量面板中,数值型变量右侧常附带小图标(如 ?),点击可打开“调试控制台”绘制历史变化趋势(需调试器支持,如 Python 的 PTVSD 或 JS 的 Chrome Debug)。








