Qtクラス用のnatvisファイルを作成していて、問題が発生しました。それはかなりの作品Visual Studio 2012 Natvis skip IndexListItems
<Type Name="QHashNode<*,*>">
<DisplayString Condition="next->next == 0">{{ key={key} value={value} h={h}}}</DisplayString>
<DisplayString>{{ key={key} value={value} h={h} withCollision }}</DisplayString>
<Expand>
<Item Name="NextNode">reinterpret_cast<QHashNode<$T1,$T2> *>(next)</Item>
</Expand>
</Type>
<Type Name="QHash<*,*>">
<DisplayString>{{ size={d->size} buckets={d->numBuckets} }}</DisplayString>
<Expand>
<IndexListItems>
<Size>d->numBuckets</Size>
<ValueNode Condition="reinterpret_cast<QHashNode<$T1,$T2> *>(d->buckets[$i]) != e">reinterpret_cast<QHashNode<$T1,$T2> *>(d->buckets[$i])</ValueNode>
</IndexListItems>
</Expand>
</Type>
が、QHashがメモリに連続していないので、無効なエントリがたくさんあります:
はQHashオブジェクトを可視化するために、私はこれらの2つのタイプを作成しました。 条件
reinterpret_cast<QHashNode<
$T1,$T2> *>(d->buckets[$i]) != e
はすでに無効なものを除外し、しかし、彼らはまだ<Unable to display value>
として示されています。
これらのエントリを完全にスキップする方法があるかどうか知りませんか?
私は実際にそれを行うには、古いやり方をしたAUTOEXP.DATファイルで働いていないが、Qtの-プラグインを使用してファイルを見たとき、声明#switch ($e.next != 0) #case 1 (
$e
)
がないように私には思えるインストール決して
正確には、natvisファイルでもそれを行う方法があることを願っています。
興味があれば、私はあなたにnatvisファイルを与えることができますが、私は今までQString、QByteArray、QList、QVector、QMapと(問題のある)QHashしか持っていません。
私のハッシュコンテナと全く同じ問題があります。私はまた、私が投票したこの機能要求を発見しました:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3712689-implement-the-features-missing-in-natvis-that-auto – JCash
! = eには* – cmd
の.gtが必要です。[このリンク](http://blogs.msdn。com/b/vcblog/archive/2013/06/28/use-visual-studio-2013-to-write-maintainable-native-visualizations-natvis.aspx)をご覧ください。それはあなたを助けるかもしれません... –