From: Nick Roberts <nickrob@snap.net.nz>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] -stack-info-frame/-stack-list-frames
Date: Fri, 25 Apr 2008 01:48:00 -0000 [thread overview]
Message-ID: <18449.4568.206733.6318@kahikatea.snap.net.nz> (raw)
In-Reply-To: <20080424021509.GA3497@caradoc.them.org>
> > Well you understand the internals much better than I do, but whenever I've
> > looked at the frame addresses on i386 they've appeared meaningful. Are
> > "stackless recursive functions" special to IA-64 or a consequence of
> > optimisation? If the values are meaningful "most of the time" then I think
> > it's OK to have this field, if not then I guess it might just confuse.
>
> It's an IA-64 thing. This is the original reason that frame IDs had a
> third member, the "special address" field.
So it's really an exceptional case rather than the rule.
> I've actually got patches to add several more items to the frame ID.
> I hope I'll be submitting them soon. That's inlined function support,
> where the stack address really becomes not useful to identify the
> scope.
Maybe Gdb could somehow identify the cases where the address isn't useful.
> On Thu, Apr 24, 2008 at 12:40:12PM +1200, Nick Roberts wrote:
> > Actually it just needs to be a non-zero value for frames in which a varobj
> > is created. Perhaps a member of struct frame_id, int varobj_frame say,
> > which increments when a varobj is created in a new frame. This could also
> > then be used to see if a varobj has gone out of scope to avoid the
> > ambiguities Jim Blandy talked about from using frame_find_by_id.
> >
> > Perhaps this is what you are suggesting, anyway.
>
> Right, this is basically what I had in mind. It may not solve the
> going out of scope bit, because we don't usually backtrace all the
> way up - and how do we avoid having to save an unbounded number of
> these things so we can map them, so maybe a hash is better than
> a counter. I haven't thought about the details yet.
I don't think the number need be that unbounded, it's not needed for each
frame, only those in which a varobj is created. But it appears that the
linked list of frames gets destroyed and recreated each time execution
occurs, in which case any id information is also lost (I was looking at
using an extra member in struct frame_info).
--
Nick http://www.inet.net.nz/~nickrob
next prev parent reply other threads:[~2008-04-24 23:04 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-23 5:33 Nick Roberts
2008-04-23 5:48 ` Vladimir Prus
2008-04-23 6:03 ` Nick Roberts
2008-04-23 6:16 ` Vladimir Prus
2008-04-23 9:50 ` Nick Roberts
2008-04-23 10:32 ` Vladimir Prus
2008-04-23 13:23 ` Nick Roberts
2008-04-23 13:44 ` Daniel Jacobowitz
2008-04-23 23:04 ` Nick Roberts
2008-04-23 23:27 ` Daniel Jacobowitz
2008-04-24 0:40 ` Bob Rossi
2008-04-24 1:45 ` Nick Roberts
2008-04-24 1:31 ` Nick Roberts
2008-04-24 1:48 ` Nick Roberts
2008-04-24 10:24 ` Daniel Jacobowitz
2008-04-25 1:48 ` Nick Roberts [this message]
2008-04-25 2:03 ` Daniel Jacobowitz
2008-04-25 11:41 ` Nick Roberts
2008-04-23 13:53 ` Vladimir Prus
2008-04-23 23:23 ` Nick Roberts
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=18449.4568.206733.6318@kahikatea.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
/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