[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libunwind] endless backtrace
From: |
David Mosberger |
Subject: |
Re: [libunwind] endless backtrace |
Date: |
Thu, 18 Nov 2004 11:57:32 -0800 |
>>>>> On Thu, 18 Nov 2004 14:39:50 -0500 (EST), Richard C Bilson
>>>>> <address@hidden> said:
Richard> I've been noticing strange behavior with relatively simple
Richard> local unwinding. Sometimes my attempts to construct a
Richard> backtrace will result in endless cycling at the bottom of
Richard> the stack. Typically, my code traces down to the bottom of
Richard> the stack (to a function such as __do_global_ctors_aux)
Richard> using unw_step, but rather than unw_step returning 0 it
Richard> returns a positive value, causing my code to keep looping,
Richard> revisiting the same frame over and over.
Richard> Obviously, I could put a hack in to detect this and stop
Richard> looping, but I'd rather find some piece of code to blame
Richard> and hopefully fix. I'm doing this on an Itanium-2 Debian
Richard> unstable system (i.e. gcc 3.3.5, glibc 2.3.2). I've tried
Richard> both the system libunwind and versions of 0.98.1 and 0.98.2
Richard> that I compiled myself, and the problem still arises.
Most probably you're hitting a known bug in Debian/unstable.
See the patches in this mail:
http://lists.debian.org/debian-ia64/2004/10/msg00026.html
With those patches applied, you should get proper backtraces.
I suspect the particular problem you're hitting is that the current
Debian/unstable GCC doesn't have unwind info for crt{begin,end}.
--david