Re: Handling of structure dereferencing

Daniel Jacobowitz
2001-12-06T20:43:19Z

On Thu, Dec 06, 2001 at 09:47:50PM +0200, Eli Zaretskii wrote:
> > Date: Thu, 6 Dec 2001 12:07:39 -0500
> > From: Daniel Jacobowitz <drow@mvista.com>
> >
> > Right now, and historically, gdb has accepted things like:
> > struct foo {char a} *b, **c, ***d;
> >
> > (gdb) print b.a
> > (gdb) print d->a
>
> You mean, instead of b->a and (**d)->a, yes?

Yes, exactly.

> > So, straw poll: how would people feel about:
> > - not letting this happen; only explicit dereferencing
>
> I don't mind in this specific case, but I wonder whether there isn't
> some iceberg of which this is only a tip. We do want GDB to continue
> to print a string when you say "p str", and str is a pointer to a
> string, right? It's quite possible that the same machinery which
> supports printing arrays also causes the above.

I don't think that's the case; printing a char* does not involve
implicit dereferencing (if it did, you'd only get the first character).

--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer