This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] ARM/Linux: Unwind restart_syscall(2) frames
- From: Daniel Jacobowitz <drow at false dot org>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: gdb-patches at sourceware dot org, "Maciej W. Rozycki" <macro at linux-mips dot org>
- Date: Fri, 18 Dec 2009 14:40:33 -0500
- Subject: Re: [PATCH] ARM/Linux: Unwind restart_syscall(2) frames
- References: <alpine.DEB.1.10.0908252148560.23095@tp.orcam.me.uk>
On Tue, Aug 25, 2009 at 09:57:23PM +0100, Maciej W. Rozycki wrote:
> Now that certainly isn't perfect, but the thread cancellation path taken
> around the original syscall messes with the stack without providing
> corresponding debug information at the same time (the code in question is
> handwritten assembly cooked up with C preprocessor magic), so these outer
> frames are unreachable regardless of the trampoline frame, that is e.g.
> when the original syscall instruction is reached. Which means the
> incapability to reach frames beyond the original syscall is a separate
> problem. Either debug information would have to be added to syscall
> wrappers or heuristic unwinders improved to handle these frames.
Thomas Schwinge is working on the former solution now.
> 2009-08-25 Maciej W. Rozycki <macro@codesourcery.com>
>
> * arm-linux-tdep.c (ARM_OABI_SYSCALL_RESTART_SYSCALL): New macro.
> (ARM_LDR_PC_SP_12): Likewise.
> (arm_linux_restart_syscall_init): New function.
> (arm_linux_restart_syscall_tramp_frame): New variable.
> (arm_linux_init_abi): Install the
> arm_linux_restart_syscall_tramp_frame unwinder.
>
> Regression-tested successfully for arm-none-linux-gnueabi, OK to apply?
This is OK. Sorry for the delay.
--
Daniel Jacobowitz
CodeSourcery