automated cast to different data type possible?
Klaus Rudolph
lts-rudolph@gmx.de
Wed May 11 09:09:00 GMT 2011
Hi all,
I have the following data structures:
class Base
{
enum Type
{
TYPE_A,
TYPE_B,
...
} type;
public:
Base(Type _type):type(_type){}
};
class A: pubic Base {
int x;
int y;
ptr ...
public:
A():Base(TYPE_A){}
};
class B: public Base {
B():Base(TYPE_B){}
double a;
double b;
int c;
ptr ...
ptr ...
};
Base* ptr1=new A;
Base* ptr2=new B;
---------
Now I want to debug ptr1. print returns only the output for base. OK
But I want to see, the type is a object of class A.
Writing a pretty printer for Base is possible and could output
as a type of A or B which works fine.
BUT! and that is the my question:
The pretty printer only give an output which "looks like" a type of A or B.
In combination with ddd I am not able to dereference the ptr pointers in A or B, because the object of type Base contains no ptr element!
On command line:
graph display ptr1;
<double click on ptr1> ->
graph display *ptr1
a new window in graph view is visible with type Base
if I have a pretty printer inserted, I get a output which looks like
an object of class A.
But: if I now do a <double click> on the ptr elements, I got:
no element ptr... in Base.
Is there any chance to handle that kind of automatism in a python script?
To make the classes virtual is no solution, the data structure is fixed and used for persistent storage.
Thanks
Klaus
--
NEU: FreePhone - kostenlos mobil telefonieren und surfen!
Jetzt informieren: http://www.gmx.net/de/go/freephone
More information about the Gdb
mailing list