This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Fixing stack backtraces on 26-bit ARM
- From: Ben Harris <bjh21 at NetBSD dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Thu, 19 Oct 2006 20:46:55 +0100 (BST)
- Subject: Fixing stack backtraces on 26-bit ARM
At present, stack backtraces don't work on 26-bit ARM systems because R15
pulled out of stack frames doesn't get its PSR bits stripped out, so PC
ends up appearing to point somewhere insane. This is a simple patch (from
NetBSD CVS) to apply ADDR_BITS_REMOVE to values pulled from stack frames
to generate PC. This patch may have been approved once before, in 2001,
but it was never applied.
2006-10-19 Ben Harris <bjh21@NetBSD.org>
* arm-tdep.c (arm_unwind_pc): Use ADDR_BITS_REMOVE.
--- gdb/arm-tdep.c 2 Jul 2006 21:04:40 -0000 1.3
+++ gdb/arm-tdep.c 14 Oct 2006 10:42:53 -0000 1.4
@@ -1056,7 +1056,7 @@ arm_unwind_pc (struct gdbarch *gdbarch,
{
CORE_ADDR pc;
pc = frame_unwind_register_unsigned (this_frame, ARM_PC_REGNUM);
- return IS_THUMB_ADDR (pc) ? UNMAKE_THUMB_ADDR (pc) : pc;
+ return ADDR_BITS_REMOVE (pc);
}
static CORE_ADDR
--
Ben Harris <bjh21@NetBSD.org>
Portmaster, NetBSD/acorn26 <http://www.NetBSD.org/Ports/acorn26/>