From 118e6252ca1cabce6d4480a4f24c53e5456a2cfa Mon Sep 17 00:00:00 2001 From: Markus Metzger Date: Wed, 18 Dec 2013 11:09:34 +0100 Subject: target: allow decr_pc_after_break to be defined by the target Allow the target to define which value to use in decr_pc_after_break. It defaults to gdbarch_decr_pc_after_break (GDBARCH). 2014-01-16 Markus Metzger * target.h (struct target_ops) : New. (forward_target_decr_pc_after_break) (target_decr_pc_after_break): New. * target.c (forward_target_decr_pc_after_break) (target_decr_pc_after_break): New. * aix-thread.c (aix_thread_wait): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. * darwin-nat.c (cancel_breakpoint): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. * infrun.c (adjust_pc_after_break): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. * linux-nat.c (cancel_breakpoint): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. * linux-thread-db.c (check_event): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. * record-full.c (record_full_wait_1): Call target_decr_pc_after_break instead of gdbarch_decr_pc_after_break. --- gdb/target.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gdb/target.h') diff --git a/gdb/target.h b/gdb/target.h index d6de52a..dee8d3e 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -911,6 +911,12 @@ struct target_ops const struct frame_unwind *to_get_unwinder; const struct frame_unwind *to_get_tailcall_unwinder; + /* Return the number of bytes by which the PC needs to be decremented + after executing a breakpoint instruction. + Defaults to gdbarch_decr_pc_after_break (GDBARCH). */ + CORE_ADDR (*to_decr_pc_after_break) (struct target_ops *ops, + struct gdbarch *gdbarch); + int to_magic; /* Need sub-structure for target machine related rather than comm related? */ @@ -2051,4 +2057,11 @@ extern void target_call_history_from (ULONGEST begin, int size, int flags); /* See to_call_history_range. */ extern void target_call_history_range (ULONGEST begin, ULONGEST end, int flags); +/* See to_decr_pc_after_break. Start searching for the target at OPS. */ +extern CORE_ADDR forward_target_decr_pc_after_break (struct target_ops *ops, + struct gdbarch *gdbarch); + +/* See to_decr_pc_after_break. */ +extern CORE_ADDR target_decr_pc_after_break (struct gdbarch *gdbarch); + #endif /* !defined (TARGET_H) */ -- cgit v1.1