c++ - 带 CDB 的 QtCreator 3 在调试器中显示错误值

标签 c++ qt qt-creator

我将 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

但是调试器显示:

Debugger screenshot

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/

相关文章:

java - 长数据类型计算——为什么Java比C++快很多

c++ - 英特尔 MKL 内存管理和异常

multithreading - 在三个单独的QThread中绘制三个单独的QImage是否安全?

c++ - Makefile 和 QTCreator

c++ - 在 Qt 项目中包含 Rcpp 会导致错误影响不同的包含库

qt-creator - QtCreator : Show compile output instead of Issues, 出现错误

c++ - 字符数组初始化和尾随 null

c++ - 为什么 Qt 在 Qt 内部运行或调试时不创建文本文件,而是直接从调试文件夹创建它?

c++ - Qt 的默认线程

qt - QAbstractItemModel 相对于 QStandardItemModel 的优势是什么?