最近、私は顧客からクラッシュダンプファイルを取得しました。私は間違ったデータを含む可能性のあるクラスに問題を追いかけることができましたが、実際のポインタではなく、クラスへのvoidポインタしかありませんでした(void-pointerはwindow-propertyから来ていました。 。 Visual Studio 2005は、単にポインタ値を示した場合、ウォッチウィンドウで「PTR」を使用して'anonymous namespaces'のデータをデバッグする(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.
: は残念ながら、私はへのポインタをキャストしたかっするクラスは、このように、匿名の名前空間にありました。 "(MyClass *)ptr"を使用すると、デバッガはキャストできないと伝えます。
ptrをMyClassポインタにキャストするにはどうすればよいですか?
注:最終的には、匿名の名前空間(ソースファイルの名前など)を使用して「名前空間を使用」を使用することができますが、より良いソリューションが期待されます。
Btw、VS 2008にも同じ問題があります。私は自分自身にメモを送ることをお勧めします。 – gimpf