This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Further cache generating if PC is 0?
From: Jason Molenda <jmolenda@apple.com>
Date: Thu, 23 Jun 2005 11:50:53 -0700
Hi Corinna,
On Jun 23, 2005, at 10:06 AM, Corinna Vinschen wrote:
> Ok, so we unwind the stack pointer and what happens at that point is a
> pretty hopeless guess. The guess is that the function is frameless
> and
> has either no local variables or we're still in the prologue.
No, if we follow the convention of setting up a frame pointer and
saving it on function entry (i.e. we're not debugging -fomit-frame-
pointer code in gcc's terminology), we can do better. If the
function we're examining is potentially frameless, then we're reduced
to guessing. But if the function we're examining MUST have set up a
frame, we should assume it did so and continue up the stack.
cf http://sources.redhat.com/ml/gdb-patches/2005-06/msg00060.html
Well, I still seem to remember that at one moment in time, around the
time the i386 was converted to using the new frame unwinding code,
there was a fairly common case on Linux systems where the assumption
that there MUST be a frame didn't hold.
I hope to be looking into Jason's patch this weekend, but in any case,
it'll need thorough testing on many systems and with different
compilers. Only looking at the latest Fedora Core defenitely will not
do.
Mark