[rfc] Handle broken CFI for signal trampolines in libc on amd64-linux
Daniel Jacobowitz
drow@false.org
Fri Nov 21 15:16:00 GMT 2008
On Fri, Nov 21, 2008 at 12:38:11AM +0100, Ulrich Weigand wrote:
> Unfortunately even if I use the dwarf_signal_frame_p hook to have the
> DWARF-2 sniffer recognize a SIGTRAMP_FRAME, it still doesn't work as
> the __restore_rt CFI (at least in my glibc) only describes the unwind
> effects as if it were a regular function, without taking into account
> the restoring of registers by the sigreturn system call.
What version of glibc is this? It was fixed two years ago this month:
2006-12-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix
compatibility with
libgcc not supporting `rflags' unwinding (register # >= 17).
2006-11-29 Daniel Jacobowitz <dan@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add
correct
unwind information.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
'restore_rt' even in the 'signal' directory.
* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the
regs list.
--
Daniel Jacobowitz
CodeSourcery
More information about the Gdb-patches
mailing list