[Bug tdep/29409] [gdb, tdep/aarch64] FAIL: gdb.opt/inline-small-func.exp: info breakpoints
vries at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Tue Jul 26 12:57:08 GMT 2022
https://sourceware.org/bugzilla/show_bug.cgi?id=29409
--- Comment #7 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 14233
--> https://sourceware.org/bugzilla/attachment.cgi?id=14233&action=edit
Demonstrator patch
This patch fixes the fail for me with gcc 7.5.0, by only trusting gcc 8.1 and
later.
Interestingly, that alone was not enough, and I also needed this bit:
...
@@ -302,6 +303,8 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch,
regs[i] = pv_register (i, 0);
pv_area stack (AARCH64_SP_REGNUM, gdbarch_addr_bit (gdbarch));
+ CORE_ADDR orig_start = start;
+
for (; start < limit; start += 4)
{
uint32_t insn;
@@ -544,7 +547,7 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch,
}
if (cache == NULL)
- return start;
+ return seen_stack_set ? start : orig_start;
if (pv_is_register (regs[AARCH64_FP_REGNUM], AARCH64_SP_REGNUM))
{
@@ -583,7 +586,7 @@ aarch64_analyze_prologue (struct gdbarch *gdbarch,
cache->saved_regs[i + regnum + AARCH64_D0_REGNUM].set_addr (offset);
}
- return start;
+ return seen_stack_set ? start : orig_start;
}
static CORE_ADDR
...
which is roughly equivalent with this bit for amd64:
...
if (cache.frameless_p)
return start_pc;
...
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Gdb-prs
mailing list