2009-03-06 68 views
2

我有一个包装类,它的工作委托给一个pimpl,而pimpl是一个指向基类/接口的指针,没有数据专门用几种不同的方法。如何在C++中获取抽象(?)pimpl的调试信息?

像这样:

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的状态可能很重要,但pimpl过多地遮蔽了状态(但是这是pimpl的原始想法,所以我想我不能抱怨)。

现在我有一个tostring()函数可以将状态打印出来用于调试目的,但是想知道是否有更好的解决方案,特别是在VisualStudio中调试这种结构,但一般的解决方案会更好。

感谢

回答

4

您是否尝试过铸造可变进派生*在监视窗口?

+0

耶这部作品,好为止,但希望有一个人神奇的解决方案:) – 2009-03-06 05:23:28

+0

是什么更神奇? – jmucchiello 2009-03-06 06:17:29