C ++에서 초록 (?) PIMPL에 대한 디버그 정보를 얻는 방법은 무엇입니까?
-
03-07-2019 - |
문제
작업을 PIMPL로 위임하는 래퍼 클래스가 있으며 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를 볼 수 없습니다 (무엇이든 할 수 있기 때문입니다). 일반적으로 이것은 관련이 없지만, 파생 상태를 보는 것이 잘못되면 중요한 일이 중요 할 수 있지만 PIMPL은 상태를 너무 많이 모호하게합니다 (그러나 이것이 PIMPL의 원래 아이디어이므로 실제로 불평 할 수는 없습니다).
이제 디버그 목적으로 상태를 인쇄하는 toString () 함수가 있지만 더 나은 솔루션이 있는지 궁금해하고 특히 VisualStudio에서 이러한 종류의 구성을 디버깅하는 것이 더 좋을 것입니다.
감사
해결책
자동차 창이나 시계 창 중 하나에서 트리를 계속 확장하십시오.
Alt Text http://www.freeimagehosting.net/uploads/626b4a37ee.png
다른 팁
시계 창에서 변수를 파생*에 캐스트 해 보셨습니까?
제휴하지 않습니다 StackOverflow