forked from Imagelibrary/binutils-gdb
gdb/
* arm-tdep.c (thumb_analyze_prologue): Always fallback on the SP register when the frame can't be determined. * arm-tdep.c (arm_analyze_prologue): Ditto. gdb/testsuite/ * gdb.arch/thumb-prologue.c (switch_stack_to_same): New test function. (switch_stack_to_other): New test function. * gdb.arch/thumb-prologue.exp: New test cases.
This commit is contained in:
@@ -1152,18 +1152,12 @@ thumb_analyze_prologue (struct gdbarch *gdbarch,
|
||||
cache->framereg = THUMB_FP_REGNUM;
|
||||
cache->framesize = -regs[THUMB_FP_REGNUM].k;
|
||||
}
|
||||
else if (pv_is_register (regs[ARM_SP_REGNUM], ARM_SP_REGNUM))
|
||||
else
|
||||
{
|
||||
/* Try the stack pointer... this is a bit desperate. */
|
||||
cache->framereg = ARM_SP_REGNUM;
|
||||
cache->framesize = -regs[ARM_SP_REGNUM].k;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We're just out of luck. We don't know where the frame is. */
|
||||
cache->framereg = -1;
|
||||
cache->framesize = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
if (pv_area_find_reg (stack, gdbarch, i, &offset))
|
||||
@@ -1883,18 +1877,12 @@ arm_analyze_prologue (struct gdbarch *gdbarch,
|
||||
framereg = ARM_FP_REGNUM;
|
||||
framesize = -regs[ARM_FP_REGNUM].k;
|
||||
}
|
||||
else if (pv_is_register (regs[ARM_SP_REGNUM], ARM_SP_REGNUM))
|
||||
else
|
||||
{
|
||||
/* Try the stack pointer... this is a bit desperate. */
|
||||
framereg = ARM_SP_REGNUM;
|
||||
framesize = -regs[ARM_SP_REGNUM].k;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We're just out of luck. We don't know where the frame is. */
|
||||
framereg = -1;
|
||||
framesize = 0;
|
||||
}
|
||||
|
||||
if (cache)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user