libunwind-devel
[Top][All Lists]
Advanced

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

Re: [libunwind] UNW_FLAG_INTERRUPT_FRAME


From: David Mosberger
Subject: Re: [libunwind] UNW_FLAG_INTERRUPT_FRAME
Date: Fri, 27 Aug 2004 00:51:42 -0700

Hi Troy,

>>>>> On Thu, 26 Aug 2004 11:11:01 -0600, Troy Heber <address@hidden> said:

  Troy> On 08/25/04, David Mosberger wrote:
  >> >>>>> On Wed, 25 Aug 2004 10:52:03 -0600, Troy Heber
  >> <address@hidden> said:

  Troy> I tried that, but unw_is_signal_frame seems to change
  Troy> something in the cursor state.
  >>  The suggests a bug in the accessor routines you're using.
  >> unw_is_signal_frame() doesn't change anything on its own.

  Troy> A touch more interesting information.

  Troy> I have a test case where exporting UNW_DEBUG_LEVEL=16 makes it
  Troy> stop unwinding on the correct frame, 3 from my previous
  Troy> example, and with UNW_DEBUG_LEVEL=0 it keeps going into frame
  Troy> 4!

  Troy> I'm using a bk pull from yesterday for my libunwind.

I'm afraid this will require some debugging.  I don't see anything
obvious wrong with your code (but then again, it's fairly big and I
only had time to took a quick look).  The effects you describe sure
sound like some memory corruption.  I suppose it's possible, though
not hugely likely that the problem is in libunwind.  I'd say it's more
likely that the memory corruption happens outside of libunwind.  Keep
in mind that some of the unwind data-structures are quite big (both
unw_cursor_t and unw_context_t are big).  Apart from that, you also need
to be careful about the lifetime of the data returned by find_proc_info().
Those are the only two obvious candidates that come to mind in regard
to memory corruption.

        --david


reply via email to

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