1

我已经为 Visual Studio 2008 安装了新的加载项,以便调试 QT5 类。

由于新定义,大多数实例在调试过程中都能正确显示。我在可视化 QVectors(可能还有其他结构)时仍然存在错误。

特别是 Common7\Packages\Debugger\autoexp.dat 中引入的 QVector 的定义似乎无效:

 $c.p->array[$i]

p(因此数组)不再存在于 QVector 中。

这应该被替换为:

(float*)($c.d + $c.d->offset)[$i]

如果是QVector<float>. 我不是 autoexp.dat 中使用的视觉工作室 sintax 的专家。对于一般情况,如何解决这个问题?演员表应该推广到模板。

或者有一个更简单的解决方案可以避免处理 autoexp?

4

1 回答 1

4

经过一番摆弄,我发现以下内容适用于 Qt 5.1.0 和 Visual Studio 2010:

;  expr: $c.p->array[$i], 
   expr: (($T1*)((char*)(&$c.d->ref)+(int)$c.d->offset))[$i],

在 QVector<*> 块中替换了 3 次。$Tn 指的是在 AutoExpand 规则的第一行中以 * 形式给出的第 n 个类型参数。

希望这可以帮助,

莱因哈德

于 2013-07-25T11:04:44.277 回答