Как получить отладочную информацию для абстрактного (?) Pimpl в C++?
-
03-07-2019 - |
Вопрос
У меня есть класс-оболочка, который делегирует свою работу элементу, а элемент — это указатель на базовый класс/интерфейс без данных, который специализирован несколькими различными способами.
Так:
class Base
{
void doStuff=0;
};
class Derived
{
int x,y;
void doStuff()
{
x = (x+y*2)*x; //whatever
}
};
class Wrapper
{
Base* _pimpl;
void doStuff()
{
_pimpl->doStuff();
}
};
Большую часть времени это работает нормально, но при входе в отладчик я не могу просмотреть x,y производного класса (потому что это может быть что угодно).Обычно это не имеет значения, но когда что-то идет не так, наблюдение за состоянием Derived может быть важным, но прыщик слишком сильно затеняет состояние (однако это первоначальная идея прыща, так что, думаю, мне не на что жаловаться).
Теперь у меня есть функция tostring(), которая выводит состояние для целей отладки, но мне было интересно, есть ли лучшее решение, в частности, для отладки такого рода конструкции в VisualStudio, но общее решение было бы лучше.
Спасибо
Решение
Просто продолжайте расширять дерево в окне «Видимые» или в одном из окон «Наблюдение»:
альтернативный текст http://www.freeimagehosting.net/uploads/626b4a37ee.png
Другие советы
Пробовали ли вы привести переменную к Derived* в окне просмотра?