gdb cannot print object casted to a pointer of certain class

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

gdb cannot print object casted to a pointer of certain class

Sp3cial K
Has anyone encountered a problem where ptype prints out the class info in
most frames, but it complaints "Type xxx has no component named xxx." in one
frame?  Ironically, the frame where it doesn't print out correctly is in a
function of that class!

Also, when I tried to print out an object casted to that class, as follows:
p *(xxx *)0x12345678
it complains:
A parse error in expression, near `)0x12345678'

But if I switch to another frame, then it prints out fine...

Any help will be greatly appreciated!

Thanks,

Special K


Reply | Threaded
Open this post in threaded view
|

Re: gdb cannot print object casted to a pointer of certain class

Daniel Jacobowitz-2
On Wed, Nov 02, 2005 at 07:04:45PM -0500, Sp3cial K wrote:
> Has anyone encountered a problem where ptype prints out the class info in
> most frames, but it complaints "Type xxx has no component named xxx." in
> one frame?  Ironically, the frame where it doesn't print out correctly is
> in a function of that class!

The more details you snip out of a bug report, the less likely it is
that we can help you.  But I believe I know what this problem is:

> Also, when I tried to print out an object casted to that class, as follows:
> p *(xxx *)0x12345678
> it complains:
> A parse error in expression, near `)0x12345678'

The name is being interpreted differently in that scope, probably as
the constructor rather than the class.  A testcase might let us fix
this.

--
Daniel Jacobowitz
CodeSourcery, LLC
Reply | Threaded
Open this post in threaded view
|

Re: gdb cannot print object casted to a pointer of certain class

Sp3cial K
I dont have the code with me right now.  What I remember is that the class
has a valid constructor, and it works fine if I add "class" in front of the
name to force it to be read as a class.  Do you think this is the frame or
symbol table problem?



>From: Daniel Jacobowitz <[hidden email]>
>To: Sp3cial K <[hidden email]>
>CC: [hidden email]
>Subject: Re: gdb cannot print object casted to a pointer of certain class
>Date: Thu, 3 Nov 2005 16:22:18 -0500
>
>On Wed, Nov 02, 2005 at 07:04:45PM -0500, Sp3cial K wrote:
> > Has anyone encountered a problem where ptype prints out the class info
>in
> > most frames, but it complaints "Type xxx has no component named xxx." in
> > one frame?  Ironically, the frame where it doesn't print out correctly
>is
> > in a function of that class!
>
>The more details you snip out of a bug report, the less likely it is
>that we can help you.  But I believe I know what this problem is:
>
> > Also, when I tried to print out an object casted to that class, as
>follows:
> > p *(xxx *)0x12345678
> > it complains:
> > A parse error in expression, near `)0x12345678'
>
>The name is being interpreted differently in that scope, probably as
>the constructor rather than the class.  A testcase might let us fix
>this.
>
>--
>Daniel Jacobowitz
>CodeSourcery, LLC