This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]