This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ARM/Linux: Unwind restart_syscall(2) frames


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]