36f451a6d9
* LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86 kernels will apparently stop supporting the case where SA_RESTORER isn't set. * gdb and libunwind care about the exact instruction sequences, so we need to modify the code slightly in a few cases to match what they're looking for. * gdb also cares about the exact function names (for some architectures), so we need to use __restore and __restore_rt rather than __sigreturn and __rt_sigreturn. * It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer. This fixes unwinding through a signal handler in gdb for all architectures. It doesn't fix libunwind for arm and arm64. I'll keep investigating that... Bug: 17436734 Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb |
||
---|---|---|
.. | ||
__bionic_clone.S | ||
__restore.S | ||
__restore_rt.S | ||
__set_tls.c | ||
__stack_chk_fail_local.h | ||
_exit_with_stack_teardown.S | ||
_setjmp.S | ||
atexit.h | ||
setjmp.S | ||
sigsetjmp.S | ||
syscall.S | ||
vfork.S |