我将 QtCreator 3 与 Qt 5.2 和 VS2012 编译器、Windows 调试工具中的 CDB 调试器一起使用。 在调试程序(调试构建)时,我注意到调试器中显示的值有时是错误的。我可以在以下最小示例中重现该问题:
#include <QList>
#include <QDebug>
struct SubPart
{
unsigned short v1, v2, v3;
};
struct Part
{
void appendSubPart(unsigned short v1, unsigned short v2, unsigned short v3)
{
SubPart newSubPart;
newSubPart.v1 = v1;
newSubPart.v2 = v2;
newSubPart.v3 = v3;
subParts_ << newSubPart;
}
QList<SubPart> subParts_;
};
int main(int argc, char *argv[])
{
Part part;
part.appendSubPart(1, 2, 3);
part.appendSubPart(3, 4, 5);
SubPart &ref(part.subParts_[0]);
// Debug print the content of part.subParts_
for ( auto &i : part.subParts_ ) {
qDebug() << i.v1 << i.v2 << i.v3;
}
return 0;
}
程序输出(如预期):
1 2 3
3 4 5
但是调试器显示:
QList part.subParts_
的调试器 View 是垃圾。对列表中元素的引用 ref
没问题。
有人知道这里发生了什么吗?
最佳答案
将 Qt Creator 更新到 3.0.1 版本,将 Qt 更新到 5.2.1 版本解决了这个问题。 QList 的调试 View 显示正确的值。
关于c++ - 带 CDB 的 QtCreator 3 在调试器中显示错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561840/