¿Cómo obtener información de depuración para un resumen (?) Pimpl en C ++?
-
03-07-2019 - |
Pregunta
Tengo una clase de envoltorio que delega su trabajo a un pimpl, y el pimpl es un puntero a una clase de base / interfaz sin datos especializados en varias formas diferentes.
Me gusta esto:
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();
}
};
Esto funciona bien la mayoría de las veces, pero al entrar en el depurador no puedo ver x, y de la clase Derivada (porque podría ser cualquier cosa). Normalmente esto es irrelevante, pero cuando algo sale mal al ver el estado de Derived puede ser importante, pero pimpl oscurece demasiado el estado (sin embargo, esa es la idea original de un pimpl, así que supongo que realmente no puedo quejarme). >
Ahora tengo una función tostring () que imprime el estado para fines de depuración, pero me preguntaba si hay una solución mejor, para depurar este tipo de construcción en VisualStudio en particular, pero una solución general sería mejor.
Gracias
Solución
Solo sigue expandiendo el árbol en la ventana de Autos o en una de las ventanas de Vigilancia:
texto alternativo http://www.freeimagehosting.net/uploads/626b4a37ee.png
Otros consejos
¿Ha intentado convertir la variable en Derived * en la ventana de visualización?