F5启动调试、F9设断点、F10单步跳过、F11进入函数、Shift+F11退出函数——这五组快捷键覆盖90%日常调试;F10跳过函数调用,F11则深入其内部逐行执行,语义相近但行为迥异。

F5 启动调试,F9 打断点,F10 单步跳过,F11 进入函数,Shift+F11 退出当前函数——这五组快捷键覆盖了 90% 的日常调试操作。其他组合键要么使用频率低,要么可被替代,强行记忆反而增加负担。
为什么 F10 和 F11 容易混淆?
根本原因在于「跳过」和「进入」语义接近,但行为差异极大:F10 跳过当前行所有函数调用(包括 console.log()、myFunc()),直接执行下一行;F11 则会钻进被调用函数内部,逐行看它怎么跑。
- 调试第三方库或不关心实现细节时,无脑按
F10 - 想确认某个自定义函数逻辑是否正确,光标停在调用行后按
F11 - 误进了一个大函数想快速出来?按
Shift+F11,别狂按F10等它走完 - 某些键盘(如 Mac 笔记本)需配合
Fn键才能触发F10/F11,可在系统设置里关闭「将 F1、F2 等用作标准功能键」
Ctrl+Shift+D 打不开「运行和调试」面板?
常见于刚装好 VSCode 或没装对应语言扩展的场景。VSCode 的调试能力不是内置的,而是靠扩展提供:比如 Python 需要 Python 扩展,Node.js 需要 Node Debug Adapter(通常随 JavaScript Debugger 自动启用)。
- 先确认已安装对应语言的官方扩展(如
ms-python.python) - 打开一个带
.py或.js后缀的文件,再按Ctrl+Shift+D,面板才会激活并显示「运行和调试」视图 - 如果仍为空白,检查左下角状态栏是否显示「No debugger extensions installed」,点击它去安装推荐扩展
-
.vscode/launch.json不是必须手动创建——首次按F5时,VSCode 会引导你选择环境并自动生成
断点打了却没停住?三类典型原因
断点失效不是玄学,基本逃不出代码未加载、环境不匹配、配置错位这三类。
- 源码和实际运行代码不一致:比如用
npm run build构建后调试dist/目录,但断点打在src/里——确保你在调试源码路径,或开启 source map - 启动命令没走调试通道:Node.js 项目直接双击运行
node index.js,断点无效;必须用F5或npm run debug(后者需在package.json中配好--inspect-brk) - 条件断点写错语法:比如想在
i === 5时暂停,却写成i == 5或漏了括号,VSCode 会静默忽略该条件 - 多线程/异步代码中,断点可能只在主线程命中,
setTimeout或Promise.then里的断点需确认事件循环是否已推进到那一步
真正卡住调试的,往往不是快捷键记不牢,而是断点位置和运行路径对不上。先盯住「我改的代码是不是真被跑到了」,再回头查按键——这个顺序颠倒,就容易在快捷键上浪费半小时。











