Visual Studio 2012 Natvis atla İndexListİtems
Qt sınıfları için natvis dosyası oluşturma ve ben bir sorun ile karşılaştım.
QHash nesneleri görselleştirmek için bu iki tür yarattı
<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>
Bu kadar çok fazla çalışıyor, ama QHash bellekte sürekli olmadığı için, geçersiz girişleri var. Durumu
reinterpret_cast<QHashNode<
$T1,$T2> *>(d->buckets[$i]) != e
zaten geçersiz olan Bu filtreler, ama hala <Unable to display value> olarak gösterilir.
Eğer tamamen o kayıtlar atlamak için bir yol olup olmadığını biliyor mu?
Hiç autoexp ile çalıştı.dat bunu yapmak için eski yol olan dosya, ama Qt-eklenti yüklü dosyayı bakarken ifadesi gibi geliyor bana
#switch ($e.next != 0) #case 1 (
$e
)
belki natvis dosyası da bunu yapmak için bir yol var umarım o tam olarak ne?
Eğer ilgilenen varsa, natvis dosyası verebilirim, ama ben sadece şimdiye kadar QString, QByteArray, QList, Deyişle, ve (sorunlu) QMap QHash.
CEVAP
Tanım bitişik MSDN page on writing type visualizers, <IndexListItems> göre
İndexListİtems Genişleme
Arrayıtems dizi elemanları bellekte bitişik olarak düzenlendiği varsayılmaktadır. Hata ayıklayıcı sadece geçerli öğe için bir işaretçi tarafından artan bir sonraki öğeye alır. Değer düğüm dizini değiştirmek için gereken durumlar desteklemek için, dizin listesi öğeleri kullanılabilir. İşte bir görüntüleyici 'İndexListİtems' düğümü: [....] Arrayıtems ve İndexListİtems arasındaki tek fark bu. '' örtülü ile Art eleman tam ifade bekliyor '$i' parametresi. ValueNode
Ayrıca, ben the Qt Labs VSTools repository its documentation işaret olabilir? Özellikle tools/Qt4EEAddin/qt5.natvis yazmaya çalışıyorsun sanırım ne gibi büyük bir anlaşma gibi görünüyor? Yaaslındane yazıyorsun? ^_^) Her halükarda, bence en iyi yaptığınız şey qt5.natvis belirli bir özel <DisplayString> boş QHashNodes ama değil denemek elide boş kova QHash.

Ne kadar çabuk Visual Studio 2012'de b...
Yapamadı, hata ayıklama yönetilen visu...
Visual Studio 2012 içinde iki dosyayı ...
Visual Studio 2012 temalar geçiş yapab...
Visual Studio 2012 tarihinde JAY oyunl...