Hi Mika,
On Thu, Oct 6, 2011 at 7:51 PM, Mika Westerberg <mika.westerberg(a)iki.fi> wrote:
On Thu, Oct 06, 2011 at 01:04:07PM +0200, Per Fransson wrote:
> The 'struct stackframe' we use to keep unwind state when going from
> one frame to the next (or should I say previous) only contains fp,
> sp, lr and pc, which might be something we should consider changing.
> Even as it stands however, frame.fp is assigned an incorrect value
> for active tasks. Here's a patch to fix that.
I don't understand how it can be incorred - IIRC unwind tables don't use FP at
all. It is only there because that register can be used for other purposes and
some unwinding instructions might restore it from the stack.
Have you seen this problem really happening?
Indeed I have. Looking up the pc 0xc02c9650 I find this idx entry:
0xc02c9610 0x000376a4
The insn field directs me to the following EHT:
0x81019b42
which contains two instructions:
exec 0x9b : sp = fp
exec 0x42 : sp = sp - 0xc
An uninitialized fp makes this fail. With my oneliner it works.
Regards,
Per
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility