This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug gdb/19051] New: incorrect/missing AAPCS vector support on ARM
- From: "sandra at codesourcery dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Thu, 01 Oct 2015 23:35:38 +0000
- Subject: [Bug gdb/19051] New: incorrect/missing AAPCS vector support on ARM
- Auto-submitted: auto-generated
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.