libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [libunwind] libunwind segv with gcc 2.96 programs run on RedhatEL 3


From: Jim Wilson
Subject: RE: [libunwind] libunwind segv with gcc 2.96 programs run on RedhatEL 3 with GLIBC 2.3.2
Date: 05 Feb 2004 12:27:28 -0800

On Thu, 2004-02-05 at 07:52, Harrow, Jerry wrote:
> Do you recall how the end of stack was detected, before these changes
> went in?  Perhaps by shear luck?

gcc-2.96 used a very different method for looking up unwind info than
gcc-3 does.  gcc-2.96 uses constructors to register the unwind info at
run time, adding the info to a linked list that is looked at when we try
to unwind.  It would be easy to find the end of the call chain in such
an approach, because we run off the end of the linked list.  This is how
it works if you use the builtin gcc unwinder in gcc-2.96.

If you use libunwind with gcc-2.96, then probably the answer is that it
never worked, and it isn't reasonable to expect it to.  gcc-2.96 is so
old that there may also be other problems besides this end-of-call-chain
problem that you have run into.

gcc-3 reads elf headers to find the unwind info at unwind time, just
like libunwind does.  In this case, detecting the end of stack works
only if glibc gets the unwind info right.  libunwind should work fine
with gcc-3 compiled code, assuming you have an up-to-date glibc.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]