[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