[Crash-utility] [PATCH] ARM: fp when unwinding

Per Fransson per.fransson.ml at gmail.com
Fri Oct 7 08:07:37 UTC 2011


Hi Mika,

On Thu, Oct 6, 2011 at 7:51 PM, Mika Westerberg <mika.westerberg at 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 at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
>




More information about the Crash-utility mailing list