hurd: unwinding support over signal trampolines
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sat, 30 May 2020 18:45:30 +0000 (18:45 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Sat, 30 May 2020 18:45:45 +0000 (18:45 +0000)
commit0af5e1061d7e7bff9270d30635ac4409888c9b73
tree3686c69c7c72e2610abe31bdfa5c57d18dda35ba
parent078f2fc9c153e6efd1c88b0a34eccc1164f9ae2f
hurd: unwinding support over signal trampolines

This allows to get full backtrace from signal handlers, otherwise the
backtrace stops at the trampoline that calls the handler.

This needs special knowledge how the trampoline records register context
for the sigreturn call after signal handling.

gdb/ChangeLog:

* i386-gnu-tdep.c: Include "gdbcore.h"
(gnu_sigtramp_code, i386_gnu_sc_reg_offset): New arrays.
        (GNU_SIGTRAMP_LEN, GNU_SIGTRAMP_TAIL,
        I386_GNU_SIGCONTEXT_THREAD_STATE_OFFSET): New macros
        (i386_gnu_sigtramp_start, i386_gnu_sigtramp_p,
        i386_gnu_sigcontext_addr): New functions
        (i386gnu_init_abi): Register i386_gnu_sigtramp_p,
        i386_gnu_sigcontext_addr, and i386_gnu_sc_reg_offset in the gdbarch
        tdep.
gdb/ChangeLog
gdb/i386-gnu-tdep.c