Отладка данных в «анонимных пространствах имен» (C ++)
Недавно я получил файл аварийного дампа от клиента. Я мог отследить проблему до класса, который мог содержать неверные данные, но я получил только void-указатель на класс, а не реальный указатель (void-указатель пришел из свойства окна, поэтому это был указатель void) , К сожалению, класс, на который я хотел привести указатель, находился в анонимном пространстве имен, например:
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-указателю?
Примечание: я мог бы в конечном итоге использовать пространство имен с глупыми именами (например, имя исходного файла), а затем использовать «использование пространства имен», но я бы ожидал лучших решений.