2009-08-26 25 views
10

Geçtiğimiz günlerde bir müşteriden çökme döküm dosyası aldım. Sorunu yanlış veriler içerebilecek bir sınıfa kadar izleyebilirdim, ancak sadece sınıfa bir işaretçi gösterdim, gerçek bir işaretçi (boşluk işaretçisi bir pencere özelliğinden geldi, bu nedenle bir boşluk işaretçisiydi) . Maalesef sınıf hangi Böyle bir anonim ad alanında oldu işaretçiyi döküm istedim:'Anonim ad alanlarında' hata ayıklama (C++)

namespace 
    { 
    class MyClass 
     { 
     ... 
     }; 
    } 

... 
void *ptr = ... 
// I know ptr points to an instance of MyClass, 
// and at this location I want to cast ptr to (MyClass *) in the debugger. 

Visual Studio 2005 sadece işaretçi değerini gösteriyorsa izle penceresinde "ptr" kullanma. "(MyClass *) ptr" komutunu kullanırsam, hata ayıklayıcı bana gönderilemeyeceğini belirtir.

ptr'yi bir Sınıf İşaretçisine nasıl dönüştürebilirim?

Not: Sonunda aptalca adlandırılmış bir ad alanı (kaynak dosyanın adı gibi) kullanabilir ve daha sonra bir "ad alanı kullanarak" kullanabilirdim, ancak daha iyi çözümler beklerdim.

+1

Btw, VS 2008 aynı sorunu gösterir. MS'e not göndermenizi tavsiye ederim. – gimpf

cevap

8

Bu, MSDN numaralı belgede belirtilmiştir. İzleme penceresinde güzel bir çözüm gibi görünmüyor (sanırım sanırım bir listeden sınıfınızın süslü adını alabilirsiniz).

"Aptalca adlandırılmış ad alanı" fikriniz işe yarayacaktı, aynı adlı bir sınıfla aynı adı sadece aptalca bir adla bildirebilir ve bunun yerine bu türe yayınlayabilirsiniz.

İlgili konular