F5在调试状态下表示继续执行至下一有效断点,非单步或重启;若无效,常见原因包括断点设在不可执行行、未启用Debug模式、缺失-g调试符号、构建缓存残留或线程已结束。

按 F5 继续运行到下一个断点
Qt Creator 中「继续执行」就是直接运行到下一个有效断点,不是单步,也不是重启。最常用、最直接的方式就是按 F5 —— 这个快捷键在调试状态下代表「继续(Continue)」,不是「启动调试」(首次按 F5 是启动调试,但一旦已进入调试状态,再按 F5 就是继续运行)。
注意:如果按了 F5 后程序直接退出或没停在预期断点,说明要么没有其他断点,要么断点无效(比如设在空行、注释、声明语句上),或者当前线程已结束。
为什么有时候按 F5 没反应?常见原因
断点没生效,往往不是操作问题,而是环境或配置层面的隐性失效:
- 编译未带调试信息:
qmake或CMake构建时没启用-g选项,导致调试器读不到符号表;检查构建输出里是否有-g出现 - 断点设在不可执行位置:比如
int x;这类声明行、空行、#include行、宏展开后无实际指令的位置,Qt Creator 会显示为空心圆点,表示「断点未激活」 - 构建缓存残留:改了代码但没清理 build 目录,旧二进制还在运行;务必执行
构建 > 清理项目再重新构建 - 当前线程已退出:比如你在子线程设了断点,但主线程已结束,整个进程退出,自然不会停在那个断点
如何确认断点是否真生效?
别只看红点,要验证它是否被调试器识别:
- 实心红色圆点 = 已加载、可触发;空心红点 = 未加载(常见于上述无效位置或符号缺失)
- 打开
调试器日志(菜单:窗口 > 输出 > 调试器日志),搜索关键词breakpoint或no symbol table,能快速定位加载失败原因 - 在
main()第一行设断点,按F5,如果停住了,说明基础调试链路正常;再逐步验证其他断点 - 右键断点 → 「属性」→ 查看
Condition是否误填了永远为 false 的表达式(比如i == 100但i初始为 0 且没被修改)
替代方式:用「继续」按钮或菜单项
除了 F5,你也可以点击调试工具栏上的「继续」图标(绿色三角形,悬停提示为「继续」),或通过菜单:调试 > 继续。三者等效,但快捷键最不易误触其他功能。
注意:不要混淆 F10(step over)和 F11(step into)——它们是单步,不是「运行到下一断点」;按错容易陷入函数内部反复单步,浪费时间。
真正卡住的时候,往往不是不会按哪个键,而是断点本身就没被调试器看见。先查日志、清缓存、验 main() 断点,比反复重设断点更省时间。


















