我已经为Visual Studio 2008安装了新的插件,以便调试QT5类。
由于新的定义,大多数实例在调试期间可以正确地可视化。我在可视化qvector(可能还有其他结构)时仍然有错误。
特别是Common7PackagesDebuggerautoexp.dat中引入的QVector的定义似乎无效:
$c.p->array[$i]
p(因此数组)不再存在于QVector中。
这个应该被这样的东西代替:
(float*)($c.d + $c.d->offset)[$i]
为QVector<float>
。我不是一个专家在visualstudio sintax使用autoexp.dat。一般情况下,如何解决这个问题?强制类型转换应该泛化到模板中。
或者有一个更简单的解决方案来避免处理autoexp?
经过一番折腾,我发现以下工作与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个类型参数为*。
希望有帮助,
莱因赫