c++oding="utf-8" ?>
最常见原因是调试窗口未开启或cdb下启用了use python dumper。需先打开debug侧边栏并勾选locals and expressions,再进入工具→选项→调试器→cdb取消勾选use python dumper,最后删除构建目录并重启qt creator。

调试窗口没打开,或者变量解析被错误配置,是 Qt Creator 里看不到变量的两个最常见原因。不是代码问题,也不是断点没生效,大概率是界面开关没点开,或 Use Python dumper 这个选项在 CDB 下反而会破坏变量显示。
调试窗口根本没显示
按下 F5 或点击带小虫子的绿色按钮进入调试后,右侧默认应出现“局部变量”和“表达式”面板。如果什么都没看到,先确认是否手动关掉了:
- 点击 Qt Creator 左侧导航栏的
Debug菜单项(不是顶部菜单栏的“调试”)——它会强制展开调试相关视图 - 右键任意 Debugger 窗口空白处,确保勾选了
Locals and Expressions - 若仍不出现,尝试
窗口 > 视图 > 重置到默认布局,避免误操作隐藏了整个调试面板
CDB 下变量显示为 “无法访问” 或 “Expression too Complex”
使用 MSVC + CDB(Windows 默认组合)时,Use Python dumper 常导致 QString、std::string 等类型解析失败,鼠标悬停提示“too complex”,变量窗口里全是灰色“”。这不是 bug,是已知兼容性冲突:
- 进
工具 > 选项 > 调试器 > CDB,取消勾选Use Python dumper - 删除当前项目的构建目录(如
build-MyProject-Desktop_Qt_6_6_1_MSVC2019_x64-Debug),再重新qmake或CMake Configure+Build - 重启 Qt Creator —— 仅改设置不重建,旧的调试符号可能仍引用失效的 Python 解析逻辑
全局变量、自定义类或 std::string 不显示内容
局部变量自动列出,但全局变量、静态成员、或新版 libstdc++ 下的 std::string 默认不会展开内容:
- 在“表达式”面板点
+,手动输入变量名(如g_myGlobalVar或myString.c_str()) - 对
std::string,若仍显示“”,可临时用myString.data()+ 长度手动查看内存(需开启“原始指针查看”) - Linux/macOS 下若用 GDB/LLDB,检查是否启用了
libstdcxx.py脚本;Qt Creator 12+ 中该脚本路径可能未自动识别,需手动指定调试器 > GDB > 调试辅助程序路径
最易忽略的一点:改完调试器设置后不清理构建目录,等于白调。CDB 和 Python dumper 的状态会固化在调试符号里,只有完整重建才能刷新解析行为。











