This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Fix stack backtraces on 26-bit ARM
- From: Fernando Nasser <fnasser at redhat dot com>
- To: Ben Harris <bjh21 at cam dot ac dot uk>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Tue, 20 Nov 2001 14:16:11 -0500
- Subject: Re: [RFA] Fix stack backtraces on 26-bit ARM
- Organization: Red Hat Canada
- References: <Pine.SOL.4.33.0111201810060.8688-100000@draco.cus.cam.ac.uk>
Ben Harris wrote:
>
> 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.
>
Ben,
I will have to test that before comitting this. Please give me some
time.
Regards,
Fernando
> 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/>
--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9