This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: print/x on references


On 10/18/07, Daniel Jacobowitz <drow@false.org> wrote:
> On Thu, Oct 18, 2007 at 05:37:36AM -0400, Paul Hilfinger wrote:
> >
> > Currently, there is a slight discrepancy in the behavior of formatted print
> > commands.  Stop the program below in f.  At that point, we see the
> > following behavior:
> >
> >     (gdb) p x
> >     $4 = (Glorp &) @0x8049850: {x = 1, y = 2}
> >     (gdb) p/x x
> >     $5 = 0x8049850
> >
> > Is there any particular reason these two cases shouldn't have the same
> > behavior?  It seems that printcmd.c:print_formatted is conflating the
> > cases of C++ pointers and C++ references, and I don't see the justification
> > for doing so.
>
> Well, what's the right behavior?  I'm not thrilled with the current
> behavior either, but I don't want to make it too hard to get at the
> reference's "value" i.e. pointer.  In C++ you never (are supposed to)
> need that, but while debugging is in my opinion a different story.

(gdb) p/x x -> prints same as $4 but in hex
(gdb) p &x -> prints pointer (e.g. "$5 = (Glorp *) 0x8049850")

$0.02


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]