This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PING][PATCH] ARM/Linux: Unwind restart_syscall(2) frames
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Michael Snyder <msnyder at vmware dot com>
- Cc: "Maciej W. Rozycki" <macro at codesourcery dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 22 Dec 2009 15:28:41 +0000
- Subject: Re: [PING][PATCH] ARM/Linux: Unwind restart_syscall(2) frames
- References: <alpine.DEB.1.10.0912181410300.4720@tp.orcam.me.uk> <4B2BD8CE.9010802@vmware.com>
On Fri, 2009-12-18 at 11:32 -0800, Michael Snyder wrote:
> Maciej W. Rozycki wrote:
> > Hi,
> >
> > Would anyone please review this patch:
> >
> > http://sourceware.org/ml/gdb-patches/2009-08/msg00431.html
> >
> > Thanks,
> >
> > Maciej
>
> Well, I don't see anything glaringly wrong with it...
>
> Richard?
>
>
It's not code that I'm familiar with, however...
svc 0x00900000
ldr pc, [sp], #12
then
+ trad_frame_set_reg_value (this_cache, ARM_SP_REGNUM, sp + 12);
So why is the stack pointer /incremented/ by 12 at this point (which
deallocates stack) rather than decremented to compensate for the
increment that will follow? Also, shouldn't the stack allocation be a
multiple of 8 to fully conform to the ABI stack alignment constraints?
What about thumb support?
Finally, do you need different code for Big-endian and BE-8 modes?
R.