Add gdbarch_in_function_epilogue_p hook for sparc64.

watchpoint_update and watchpoint_cond avoid checking for
watchpoints when we are located at a function epilogue in the
current frame.  This is done in order to avoid using corrupted
local registers and unwinding a corrupted/destroyed stack.

The code determining whether we are in a function epilogue is
provided by the backends via the gdbarch_in_function_epilogue_p
hook.  This commit adds such a hook for sparc64 targets.

2014-02-10  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc-tdep.c (sparc_in_function_epilogue_p): New function.
	(X_RETTURN): New macro.
	* sparc-tdep.h: sparc_in_function_epilogue_p prototype.

	* sparc64-tdep.c (sparc64_init_abi): Hook
	sparc_in_function_epilogue_p.
This commit is contained in:
Jose E. Marchesi 2014-02-10 07:09:23 -08:00
parent 3f03e7b140
commit 961842b289
4 changed files with 39 additions and 0 deletions

View file

@ -193,6 +193,9 @@ extern struct sparc_frame_cache *
extern struct sparc_frame_cache *
sparc32_frame_cache (struct frame_info *this_frame, void **this_cache);
extern int
sparc_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc);
extern int sparc_software_single_step (struct frame_info *frame);