10
最近,我收到了客戶的崩潰轉儲文件。我可以將問題追蹤到一個可能包含不正確數據的類,但我只有一個void類指針,而不是一個真正的指針(void-pointer來自window-property,因此它是一個void-pointer) 。 不幸的是,類我想投的指針,在一個匿名的命名空間,就像這樣:在'匿名命名空間'中調試數據(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.
在監視窗口中使用「PTR」如果Visual Studio 2005中只是顯示的指針值。 如果我使用「(MyClass *)ptr」,調試器告訴我它不能投射到它。
如何將ptr轉換爲MyClass指針?
注意:我最終可能會使用一個愚蠢命名的命名空間(如源文件的名稱),然後使用「using namespace」,但我希望有更好的解決方案。
順便說一句,VS 2008展現出同樣的問題。我建議給MS自己發一張紙條。 – gimpf 2009-08-26 14:57:38