From: Daniel Jacobowitz <drow@mvista.com>
To: Jim Blandy <jimb@redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: C++ nested classes, namespaces, structs, and compound statements
Date: Tue, 16 Apr 2002 14:58:00 -0000 [thread overview]
Message-ID: <20020416175911.A6603@nevyn.them.org> (raw)
In-Reply-To: <nphemb1fm4.fsf@zwingli.cygnus.com>
On Tue, Apr 16, 2002 at 04:46:27PM -0500, Jim Blandy wrote:
>
> Daniel Jacobowitz <drow@mvista.com> writes:
> > > Okay, I think I see. You're preserving the distinctions implicit in
> > > the existing structures (fields and symbols are separate),
> > > distinguishing types from symbols (i.e. an entry for a typedef would
> > > be an environment_entry whose kind == type_kind, instead of a symbol
> > > with an address class of LOC_TYPEDEF), and positing that namespaces
> > > would be a fourth kind of thing. The `data' field would point to a
> > > `struct type' or a `struct field', or whatever.
> >
> > Yes, that's right. There's also transparent scopes (which might be a
> > special kind of namespace... or not). By that I mean {} enclosed
> > regions with their own local variables. A function belongs to a
> > namespace, a namespace does not enclose a particular range of PCs - but
> > a scope does enclose a particular PC range. Hopefully but not
> > necessarily a single contiguous range. Optimization or explicit
> > .section directives could break it up.
>
> At the moment GDB assumes they're contiguous. (Of course.) Dwarf 3
> allows one to describe lexical blocks that occupy discontinuous
> address ranges, but we don't read that. (Of course.)
Of course :)
> But why would lexical blocks occur in an environment? They don't
> generally have names. Functions do, but I would say a function "has
> a" lexical block, rather than saying it "is a" lexical block.
A function can have local types (in GNU C, and possibly in standard C++,
etc.). It also contains lexical blocks with no names.
int
foo()
{
typedef int x;
return (x) 1;
}
The type 'x' is local to foo() in this example. The DWARF-2
information supports this interpretation.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-04-16 21:58 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-05 20:42 Jim Blandy
2002-04-05 22:05 ` Daniel Berlin
2002-04-05 22:34 ` Daniel Jacobowitz
2002-04-05 23:49 ` Daniel Berlin
2002-04-06 7:18 ` Dan Kegel
2002-04-06 9:26 ` Gianni Mariani
2002-04-06 11:57 ` Daniel Berlin
2002-04-08 17:24 ` Jim Blandy
2002-04-08 17:03 ` Jim Blandy
2002-04-08 18:59 ` Daniel Jacobowitz
2002-04-09 18:35 ` Jim Blandy
2002-04-09 20:56 ` Daniel Jacobowitz
2002-04-12 15:08 ` Jim Blandy
2002-04-12 16:32 ` Daniel Jacobowitz
2002-04-08 17:19 ` Jim Blandy
2002-04-08 18:49 ` Daniel Jacobowitz
2002-04-10 10:31 ` Jim Blandy
2002-04-10 12:08 ` Daniel Jacobowitz
2002-04-12 13:58 ` Jim Blandy
2002-04-12 16:56 ` Daniel Jacobowitz
2002-04-16 12:08 ` Jim Blandy
2002-04-16 14:01 ` Daniel Jacobowitz
2002-04-16 14:52 ` Jim Blandy
2002-04-16 14:58 ` Daniel Jacobowitz [this message]
2002-04-06 6:31 ` Andrew Cagney
2002-04-06 7:58 ` Daniel Berlin
2002-04-08 0:59 ` Joel Brobecker
2002-04-08 2:01 ` Doubt in GDB SathisKanna k
2002-04-06 8:49 ` C++ nested classes, namespaces, structs, and compound statements Per Bothner
2002-04-08 16:29 ` Jim Blandy
2002-04-08 16:48 ` Daniel Jacobowitz
2002-04-09 6:55 ` Petr Sorfa
2002-04-10 10:34 ` Jim Blandy
2002-04-10 12:31 ` Daniel Berlin
2002-04-10 12:53 ` Petr Sorfa
2002-04-05 22:02 Michael Elizabeth Chastain
2002-04-05 22:13 ` Daniel Berlin
2002-04-05 22:30 ` Daniel Berlin
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=20020416175911.A6603@nevyn.them.org \
--to=drow@mvista.com \
--cc=gdb@sources.redhat.com \
--cc=jimb@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