This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gdb/19051] New: incorrect/missing AAPCS vector support on ARM


https://sourceware.org/bugzilla/show_bug.cgi?id=19051

            Bug ID: 19051
           Summary: incorrect/missing AAPCS vector support on ARM
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: sandra at codesourcery dot com
  Target Milestone: ---

We've been seeing that the new-ish vector ABI tests in gdb.base/gnu_vector.exp
have been causing target crashes on ARM EABI, both hardware tested with a JTAG
probe and stub and QEMU using its built-in GDB stub.  The problem appears to be
that GDB thinks vectors are returned as aggregates, when they are actually
returned in registers.  For infcalls, GDB is passing a pointer to a stack
buffer for the return value as the first argument, which the function being
called is not expecting.  This messes up the registers the remaining arguments
are passed in, the called function gets garbage pointer values in the registers
where it's expecting to receive its parameters, and ends up accessing invalid
memory.

On arm-none-linux-gnueabi, the MMU seems to be preventing the target from
crashing, but the return values from the tests are still garbage.

>From inspection of the code in arm-tdep.c it appears that GDB also does not
know about alignment requirements for vectors (there's a TODO in
arm_type_align).

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]