From: Peter Schauer Date: Mon, 16 Aug 1993 10:13:22 +0000 (+0000) Subject: * config/m68k/tm-m68k.h (SIG_PC_FP_OFFSET, SIG_SP_FP_OFFSET): X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c67d08e89bf84624a016fb42b3f2e241fcf5ab07;p=binutils-gdb.git * config/m68k/tm-m68k.h (SIG_PC_FP_OFFSET, SIG_SP_FP_OFFSET): Define for correct handling of bachtraces through _sigtramp. --- diff --git a/gdb/config/m68k/tm-sun3.h b/gdb/config/m68k/tm-sun3.h index 69d10552fe2..103abfc7a4f 100644 --- a/gdb/config/m68k/tm-sun3.h +++ b/gdb/config/m68k/tm-sun3.h @@ -71,3 +71,22 @@ extern CORE_ADDR m68k_saved_pc_after_call PARAMS ((struct frame_info *)); /* The code which tries to deal with this bug is never harmful on a sun3. */ #define SUN_FIXED_LBRAC_BUG (0) + +/* On the sun3 the kernel pushes a sigcontext on the user stack and then + `calls' _sigtramp in user code. _sigtramp saves the floating point status + on the stack and calls the signal handler function. The stack does not + contain enough information to allow a normal backtrace, but sigcontext + contains the saved user pc/sp. FRAME_CHAIN and friends in tm-m68k.h and + m68k_find_saved_regs deal with this situation by manufacturing a fake frame + for _sigtramp. + SIG_PC_FP_OFFSET is the offset from the signal handler frame to the + saved pc in sigcontext. + SIG_SP_FP_OFFSET is the offset from the signal handler frame to the end + of sigcontext which is identical to the saved sp at SIG_PC_FP_OFFSET - 4. + + Please note that it is impossible to correctly backtrace from a breakpoint + in _sigtramp as _sigtramp modifies the stack pointer a few times. */ + +#undef SIG_PC_FP_OFFSET +#define SIG_PC_FP_OFFSET 324 +#define SIG_SP_FP_OFFSET 332