能调试必须满足两个前提:可执行文件带调试符号且调试器配置正确,缺一不可;否则f5直接运行、不进断点,或报debugger not found、no debug information等错误。

能调试,但必须满足两个前提:可执行文件带调试符号 + 调试器配置正确。缺一不可,否则点 F5 会直接运行、不进断点,或报 Debugger not found、No debug information 等错误。
确认构建套件用了 Debug 模式
Qt Creator 默认可能选的是 Release 套件,它不生成调试符号,断点形同虚设。
- 左下角点击 项目(或按 Ctrl+5),进入构建设置
- 检查“构建套件”是否选中了带
Debug标签的 Kit(例如Desktop Qt 6.7.2 MinGW 64-bit (Debug)) - 确认“构建配置”下拉框里选的是
Debug,不是Release或Profile - 如果只有 Release 选项,说明你安装的 Qt 版本没带 Debug 构建工具链——得重装带调试支持的 Qt(如 MinGW-w64 的 debug 版,或 MSVC 的 Debug 工具集)
断点不命中?先看调试器是否就位
Qt Creator 只是前端,真正干活的是 GDB/CDB/LLDB。没配好,F5 就只是运行,不是调试。
- Windows + MSVC:必须装
Debugging Tools for Windows(属于 Windows SDK,安装时勾选);Qt Creator 里要选对 Kit 中的调试器为CDB - Windows + MinGW:确保安装了
gdb.exe(通常随 MinGW 自带),Kit 中调试器应指向mingw-gdb.exe - Linux/macOS:一般自带
gdb或lldb,但需确认权限(比如 macOS 可能因 SIP 拦截调试器,需手动授权) - 检查路径:工具 → 选项 → 调试器 → 手动添加并验证调试器路径是否可执行(比如运行
gdb --version)
界面卡死或 Crash 后看不到堆栈?关掉优化再试
Debug 模式下若仍跳转不到源码、局部变量显示 <optimized out></optimized>,大概率是编译器优化没关干净。
- 在
.pro文件里加一行:QMAKE_CXXFLAGS_DEBUG += -O0(强制关闭优化) - qmake 项目:删掉
build目录,重新 qmake → 构建 - CMake 项目:确保
CMAKE_BUILD_TYPE是Debug,且没在CMakeLists.txt里手动加-O2或-DNDEBUG - 特别注意:Qt Creator 有时会缓存旧构建配置,改完
.pro后务必点“构建 → 清理项目”,再“构建项目”
调试时工作目录不对,资源加载失败?手动设运行路径
界面程序常依赖相对路径读取 qss、图片、翻译文件,而 Qt Creator 默认工作目录是构建目录,不是源码或可执行文件所在目录。
- 项目 → 运行 → “工作目录”字段填
%{sourceDir}(源码根目录)或%{buildDir}(构建输出目录) - 更稳妥的做法:用
QDir::currentPath()在代码开头打个qDebug(),确认实际工作目录,再反向调整 - 避免硬编码路径,优先用
QCoreApplication::applicationDirPath()或QStandardPaths::standardLocations()
真正容易被忽略的,是调试器和构建套件的匹配关系——同一个 Qt 版本,MinGW 编译的程序不能用 MSVC 的 CDB 调试,反之亦然;哪怕路径都对,只要 ABI 不兼容,就会静默失败。











