mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
* config/m68k/tm-m68k.h (SIG_PC_FP_OFFSET, SIG_SP_FP_OFFSET):
Define for correct handling of bachtraces through _sigtramp.
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user