[Top][All Lists]

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

Re: [libunwind] unwinding through dynamically modified code?

From: Keith Owens
Subject: Re: [libunwind] unwinding through dynamically modified code?
Date: Tue, 16 Mar 2004 09:08:43 +1100

On Mon, 15 Mar 2004 13:41:30 -0800, 
"Young, Mark" <address@hidden> wrote:
>A disjoint code fragment that is jumped into can by described as 
>performing a sequence of state save operations at instruction offset 0, 
>as if the separate function entry state save instructions had 
>immediately preceded the fragment. Given any possible ip in the 
>fragment, the unwinder sees that the state save has already occurred and 
>yet it has the complete recipe to reconstruct the previous frame state 
>since it does so without looking at the code.

One "minor" problem, that approach only works if each code fragment has
a unique "caller".  IOW, only one sction of code branches to the code
fragment and the code fragment branches directly back to the original
code.  If you have a code fragment that is invoked from multiple
places, using a return address in a register or on stack, then
unwinding is much more difficult.  We don't have a unwind construct
that says "my state is is the same as that defined by the IP in
register 28".

reply via email to

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