This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] Fix stack backtraces on 26-bit ARM
- From: Ben Harris <bjh21 at cam dot ac dot uk>
- To: <gdb-patches at sources dot redhat dot com>
- Date: Tue, 20 Nov 2001 18:15:12 +0000 (GMT)
- Subject: [RFA] Fix stack backtraces on 26-bit ARM
I've got an assignment signed, and commit access, so can someone approve
this now?
I'm trying to make GDB 5.0 work on NetBSD/arm26. One problem I've run
into is that even with "set apcs32 0", stack backtraces include flags in
the program counter for all frames apart from the top one. I think this
patch fixes the problem by using arm_addr_bits_remove() to clean up the
PC fetched from a stack frame. I'm not in a position to check this still
works on arm32 and thumb.
ChangeLog entry:
2001-11-20 Ben Harris <bjh21@netbsd.org>
* arm-tdep.c (arm_frame_saved_pc): Use arm_addr_bits_remove to
clean the PC. Necessary for backtraces in 26-bit modes.
Patch:
*** arm-tdep.c 2000/07/26 00:32:33 1.1.1.1
--- arm-tdep.c 2001/10/20 16:40:16
*************** arm_frame_saved_pc (struct frame_info *f
*** 1019,1025 ****
#endif
{
CORE_ADDR pc = arm_find_callers_reg (fi, LR_REGNUM);
! return IS_THUMB_ADDR (pc) ? UNMAKE_THUMB_ADDR (pc) : pc;
}
}
--- 1021,1027 ----
#endif
{
CORE_ADDR pc = arm_find_callers_reg (fi, LR_REGNUM);
! return arm_addr_bits_remove(pc);
}
}
--
Ben Harris <bjh21@netbsd.org>
Portmaster, NetBSD/arm26 <URL:http://www.netbsd.org/Ports/arm26/>