From: "Klaus Rudolph" <lts-rudolph@gmx.de>
To: gdb@sourceware.org
Subject: automated cast to different data type possible?
Date: Wed, 11 May 2011 09:09:00 -0000 [thread overview]
Message-ID: <20110511090850.28500@gmx.net> (raw)
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
next reply other threads:[~2011-05-11 9:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-11 9:09 Klaus Rudolph [this message]
2011-05-11 21:00 ` Tom Tromey
2011-05-12 6:17 ` Klaus Rudolph
2011-05-12 16:06 ` Tom Tromey
2011-05-12 17:13 ` André Pönitz
2011-05-15 14:17 ` Klaus Rudolph
2011-05-16 11:43 ` André Pönitz
2011-05-16 17:15 ` Klaus Rudolph
2011-05-24 13:48 ` André Pönitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110511090850.28500@gmx.net \
--to=lts-rudolph@gmx.de \
--cc=gdb@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox