2011-12-28 16 views
5

VC++ 2010 hata ayıklayıcısında bir vektöre erişmeye çalıştığımda, yalnızca kullanılabilir öğeler "_M_start", "_M_end" ve "_M_end_of_storage" dır. Bir örnek ekran görüntüsü aşağıdaki gibi: Visual C++ 2010 vektör hata ayıklama - hiçbir içerik gösterilmiyor

Vector debug issue example

Bir süre önce bir vektör gerçek içeriğine erişmek mümkün, ama uzun zamandır bu durumda (Yaşamak başardık olmamıştır hatırlamak bir süre için. Yanlışlıkla kapattığım veya tamamen bir şeyi özlediğim belirli bir ayar/özellik var mı?

+2

STLport veya MS STL kullanıyor musunuz? – NirMH

+1

Ya da VC++ yüklemeniz berbat ya da VS2010 –

+0

için yeniden derlenmeyen bir VS2010 STL kodu kullanıyorsunuz İlk olarak bir hata ayıklama yapısı ve hata ayıklama sembolleriniz var mı? İkincisi, çözümünüzü * .sdf dosyasını silmek için intellisense vb. Sıfırlayabilirsiniz. – AJG85

cevap

2

VS IDE, Microsoft sahibi olmayan STL olmayan STL kapsayıcılarının hata ayıklama bilgilerini görüntüleyemediği bilinmektedir. STLPort kütüphanesi kullanırken aynı sorunu yaşadım.

Ancak, vektörün içeriğini keşfetmek için saati kullanabilirsiniz, ancak daha yorucu olur. Vektörün öğelerine _M_start üyesi üzerinde dizi dizinleme yaklaşımı kullanarak erişebilirsiniz. Saat ine ekle

meshEdges._M_start[0] 

Daha sonra vektörün ilk elemanının içeriğini görebileceksiniz. Tüm vektör öğelerini keşfetmek/görüntülemek için basit bir yol yoktur, bunu kendiniz yinelemeniz gerekir, ancak yine de bir şeydir.

Bu bağlantıda daha fazla bilgi alabilirsiniz http://umairsaeed.com/2009/11/23/visualizing-stlport-data-structures-in-visual-studio-debugger. Yukarıdaki "bilgi" nin VS IDE Watch bileşenine nasıl ekleneceğini açıklar. VS2010 derleyicinize güncel olduğundan emin değilim, ama kendinizi keşfedebilirsiniz.

+0

Teşekkürler, ben istihdam kullanıyorum SDK STL kapsayıcılar için belirli bir autoexp görselleştirici bakabiliriz. Her iki durumda da, söz konusu gibi, vektörleri ayıklamak için başka (daha sıkıcı olsa da) yöntemler vardır. –

İlgili konular