From: Daniel Jacobowitz <drow@mvista.com>
To: Andrew Cagney <ac131313@redhat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [unwind-20030108-branch] Add sentinel-frame + misc
Date: Sat, 11 Jan 2003 20:54:00 -0000 [thread overview]
Message-ID: <20030111205454.GA7058@nevyn.them.org> (raw)
In-Reply-To: <3E2081C3.1080504@redhat.com>
On Sat, Jan 11, 2003 at 03:42:43PM -0500, Andrew Cagney wrote:
>
> >It's hardly a bug; more of a deep interface shortcoming. Consider:
>
> Which is a bug.
>
> >File A declares a type 'struct foo'.
> >File B declares a type 'struct foo'.
> >Header C forward declares 'struct foo;' and 'struct foo *get_foo ()'.
> >File D includes Header C and uses 'get_foo'.
> >
> >I'm sitting in File D, and I want to look in the debugger at this
> >opaque unwind cache. There's no possible way to associate it with
> >either struct foo.
> >
> >That's why I think the construct should be avoided; if one of them is
> >A_foo and the other is B_foo, and we do a bit of casting, then at least
> >I can dump the one I want.
>
> Shouldn't something like:
> ('File A:struct foo' *) get_foo()
> work? Even:
> (gdb) list 'File A'
> (gdb) print *(struct foo) get_foo()
It would be nice if we defined a syntax for this, preferably one which
won't conflict with everything under the sun. Neither of the above
work, by the way.
> How does GDB differentiate between variables and enum's when they have
> multiple declarations?
Badly? If I refer to a variable declared in File D, I always get the
version from File B; no matter what cast or listing games I play. If I
print a variable in File A it gets the type from File A, but once I'm
outside that file, no beans.
Hmm, even worse: before loading symbols for Files A or B explicitly, I
get the type from File A; once symbols are loaded I get the type from
File B.
I suppose we could work around this for debugging purposes by:
File A:
typedef struct foo foobaz;
File B:
typedef struct foo foobar;
Which does work "correctly" in the debugger; so my objection is
withdrawn. We do need to solve this problem someday. I've put
together a testcase; I'll put it in GNATS later.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
prev parent reply other threads:[~2003-01-11 20:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-10 2:17 Andrew Cagney
2003-01-10 6:45 ` Andrew Cagney
2003-01-10 21:33 ` Daniel Jacobowitz
2003-01-11 18:14 ` Andrew Cagney
2003-01-11 18:34 ` Daniel Jacobowitz
2003-01-11 20:42 ` Andrew Cagney
2003-01-11 20:54 ` Daniel Jacobowitz [this message]
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=20030111205454.GA7058@nevyn.them.org \
--to=drow@mvista.com \
--cc=ac131313@redhat.com \
--cc=gdb-patches@sources.redhat.com \
/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