X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftarget-delegates.c;h=73e45dd8a77f20e5d8458cf3b22efe9248685035;hb=eb115069323087e15210c09e3b581be0f6fb5852;hp=ddcad9426d62a0f7d744aec741cc4ff8e9e0d6b7;hpb=abc56d60aacccb64e146eb7a245b3ca2cea52dd9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index ddcad9426d..73e45dd8a7 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -109,17 +109,33 @@ debug_resume (struct target_ops *self, ptid_t arg1, int arg2, enum gdb_signal ar fputs_unfiltered (")\n", gdb_stdlog); } -static ptid_t -delegate_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) +static void +delegate_commit_resume (struct target_ops *self) { self = self->beneath; - return self->to_wait (self, arg1, arg2, arg3); + self->to_commit_resume (self); +} + +static void +tdefault_commit_resume (struct target_ops *self) +{ +} + +static void +debug_commit_resume (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_commit_resume (...)\n", debug_target.to_shortname); + debug_target.to_commit_resume (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_commit_resume (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); } static ptid_t -tdefault_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) +delegate_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) { - noprocess (); + self = self->beneath; + return self->to_wait (self, arg1, arg2, arg3); } static ptid_t @@ -268,24 +284,26 @@ debug_insert_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct b } static int -delegate_remove_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +delegate_remove_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2, enum remove_bp_reason arg3) { self = self->beneath; - return self->to_remove_breakpoint (self, arg1, arg2); + return self->to_remove_breakpoint (self, arg1, arg2, arg3); } static int -debug_remove_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +debug_remove_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2, enum remove_bp_reason arg3) { int result; fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_breakpoint (...)\n", debug_target.to_shortname); - result = debug_target.to_remove_breakpoint (&debug_target, arg1, arg2); + result = debug_target.to_remove_breakpoint (&debug_target, arg1, arg2, arg3); fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_breakpoint (", debug_target.to_shortname); target_debug_print_struct_target_ops_p (&debug_target); fputs_unfiltered (", ", gdb_stdlog); target_debug_print_struct_gdbarch_p (arg1); fputs_unfiltered (", ", gdb_stdlog); target_debug_print_struct_bp_target_info_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_remove_bp_reason (arg3); fputs_unfiltered (") = ", gdb_stdlog); target_debug_print_int (result); fputs_unfiltered ("\n", gdb_stdlog); @@ -593,20 +611,20 @@ debug_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum } static int -delegate_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +delegate_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { self = self->beneath; return self->to_insert_mask_watchpoint (self, arg1, arg2, arg3); } static int -tdefault_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +tdefault_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { return 1; } static int -debug_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +debug_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { int result; fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_mask_watchpoint (...)\n", debug_target.to_shortname); @@ -618,7 +636,7 @@ debug_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR fputs_unfiltered (", ", gdb_stdlog); target_debug_print_CORE_ADDR (arg2); fputs_unfiltered (", ", gdb_stdlog); - target_debug_print_int (arg3); + target_debug_print_enum_target_hw_bp_type (arg3); fputs_unfiltered (") = ", gdb_stdlog); target_debug_print_int (result); fputs_unfiltered ("\n", gdb_stdlog); @@ -626,20 +644,20 @@ debug_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR } static int -delegate_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +delegate_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { self = self->beneath; return self->to_remove_mask_watchpoint (self, arg1, arg2, arg3); } static int -tdefault_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +tdefault_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { return 1; } static int -debug_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +debug_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, enum target_hw_bp_type arg3) { int result; fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_mask_watchpoint (...)\n", debug_target.to_shortname); @@ -651,7 +669,7 @@ debug_remove_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR fputs_unfiltered (", ", gdb_stdlog); target_debug_print_CORE_ADDR (arg2); fputs_unfiltered (", ", gdb_stdlog); - target_debug_print_int (arg3); + target_debug_print_enum_target_hw_bp_type (arg3); fputs_unfiltered (") = ", gdb_stdlog); target_debug_print_int (result); fputs_unfiltered ("\n", gdb_stdlog); @@ -832,6 +850,33 @@ debug_masked_watch_num_registers (struct target_ops *self, CORE_ADDR arg1, CORE_ return result; } +static int +delegate_can_do_single_step (struct target_ops *self) +{ + self = self->beneath; + return self->to_can_do_single_step (self); +} + +static int +tdefault_can_do_single_step (struct target_ops *self) +{ + return -1; +} + +static int +debug_can_do_single_step (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_do_single_step (...)\n", debug_target.to_shortname); + result = debug_target.to_can_do_single_step (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_do_single_step (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_terminal_init (struct target_ops *self) { @@ -1214,6 +1259,32 @@ debug_remove_exec_catchpoint (struct target_ops *self, int arg1) return result; } +static void +delegate_follow_exec (struct target_ops *self, struct inferior *arg1, char *arg2) +{ + self = self->beneath; + self->to_follow_exec (self, arg1, arg2); +} + +static void +tdefault_follow_exec (struct target_ops *self, struct inferior *arg1, char *arg2) +{ +} + +static void +debug_follow_exec (struct target_ops *self, struct inferior *arg1, char *arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_follow_exec (...)\n", debug_target.to_shortname); + debug_target.to_follow_exec (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_follow_exec (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_inferior_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_char_p (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5) { @@ -1483,23 +1554,23 @@ debug_extra_thread_info (struct target_ops *self, struct thread_info *arg1) return result; } -static char * +static const char * delegate_thread_name (struct target_ops *self, struct thread_info *arg1) { self = self->beneath; return self->to_thread_name (self, arg1); } -static char * +static const char * tdefault_thread_name (struct target_ops *self, struct thread_info *arg1) { return NULL; } -static char * +static const char * debug_thread_name (struct target_ops *self, struct thread_info *arg1) { - char * result; + const char * result; fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_name (...)\n", debug_target.to_shortname); result = debug_target.to_thread_name (&debug_target, arg1); fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_name (", debug_target.to_shortname); @@ -1507,7 +1578,7 @@ debug_thread_name (struct target_ops *self, struct thread_info *arg1) fputs_unfiltered (", ", gdb_stdlog); target_debug_print_struct_thread_info_p (arg1); fputs_unfiltered (") = ", gdb_stdlog); - target_debug_print_char_p (result); + target_debug_print_const_char_p (result); fputs_unfiltered ("\n", gdb_stdlog); return result; } @@ -1561,23 +1632,18 @@ debug_interrupt (struct target_ops *self, ptid_t arg1) } static void -delegate_check_pending_interrupt (struct target_ops *self) +delegate_pass_ctrlc (struct target_ops *self) { self = self->beneath; - self->to_check_pending_interrupt (self); -} - -static void -tdefault_check_pending_interrupt (struct target_ops *self) -{ + self->to_pass_ctrlc (self); } static void -debug_check_pending_interrupt (struct target_ops *self) +debug_pass_ctrlc (struct target_ops *self) { - fprintf_unfiltered (gdb_stdlog, "-> %s->to_check_pending_interrupt (...)\n", debug_target.to_shortname); - debug_target.to_check_pending_interrupt (&debug_target); - fprintf_unfiltered (gdb_stdlog, "<- %s->to_check_pending_interrupt (", debug_target.to_shortname); + fprintf_unfiltered (gdb_stdlog, "-> %s->to_pass_ctrlc (...)\n", debug_target.to_shortname); + debug_target.to_pass_ctrlc (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_pass_ctrlc (", debug_target.to_shortname); target_debug_print_struct_target_ops_p (&debug_target); fputs_unfiltered (")\n", gdb_stdlog); } @@ -1762,6 +1828,30 @@ debug_async (struct target_ops *self, int arg1) fputs_unfiltered (")\n", gdb_stdlog); } +static void +delegate_thread_events (struct target_ops *self, int arg1) +{ + self = self->beneath; + self->to_thread_events (self, arg1); +} + +static void +tdefault_thread_events (struct target_ops *self, int arg1) +{ +} + +static void +debug_thread_events (struct target_ops *self, int arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_events (...)\n", debug_target.to_shortname); + debug_target.to_thread_events (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_events (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_supports_non_stop (struct target_ops *self) { @@ -1998,6 +2088,33 @@ debug_xfer_partial (struct target_ops *self, enum target_object arg1, const char return result; } +static ULONGEST +delegate_get_memory_xfer_limit (struct target_ops *self) +{ + self = self->beneath; + return self->to_get_memory_xfer_limit (self); +} + +static ULONGEST +tdefault_get_memory_xfer_limit (struct target_ops *self) +{ + return ULONGEST_MAX; +} + +static ULONGEST +debug_get_memory_xfer_limit (struct target_ops *self) +{ + ULONGEST result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_memory_xfer_limit (...)\n", debug_target.to_shortname); + result = debug_target.to_get_memory_xfer_limit (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_memory_xfer_limit (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_ULONGEST (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static VEC(mem_region_s) * delegate_memory_map (struct target_ops *self) { @@ -3555,32 +3672,87 @@ debug_delete_record (struct target_ops *self) } static int -delegate_record_is_replaying (struct target_ops *self) +delegate_record_is_replaying (struct target_ops *self, ptid_t arg1) { self = self->beneath; - return self->to_record_is_replaying (self); + return self->to_record_is_replaying (self, arg1); } static int -tdefault_record_is_replaying (struct target_ops *self) +tdefault_record_is_replaying (struct target_ops *self, ptid_t arg1) { return 0; } static int -debug_record_is_replaying (struct target_ops *self) +debug_record_is_replaying (struct target_ops *self, ptid_t arg1) { int result; fprintf_unfiltered (gdb_stdlog, "-> %s->to_record_is_replaying (...)\n", debug_target.to_shortname); - result = debug_target.to_record_is_replaying (&debug_target); + result = debug_target.to_record_is_replaying (&debug_target, arg1); fprintf_unfiltered (gdb_stdlog, "<- %s->to_record_is_replaying (", debug_target.to_shortname); target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ptid_t (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +delegate_record_will_replay (struct target_ops *self, ptid_t arg1, int arg2) +{ + self = self->beneath; + return self->to_record_will_replay (self, arg1, arg2); +} + +static int +tdefault_record_will_replay (struct target_ops *self, ptid_t arg1, int arg2) +{ + return 0; +} + +static int +debug_record_will_replay (struct target_ops *self, ptid_t arg1, int arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_record_will_replay (...)\n", debug_target.to_shortname); + result = debug_target.to_record_will_replay (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_record_will_replay (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ptid_t (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); fputs_unfiltered (") = ", gdb_stdlog); target_debug_print_int (result); fputs_unfiltered ("\n", gdb_stdlog); return result; } +static void +delegate_record_stop_replaying (struct target_ops *self) +{ + self = self->beneath; + self->to_record_stop_replaying (self); +} + +static void +tdefault_record_stop_replaying (struct target_ops *self) +{ +} + +static void +debug_record_stop_replaying (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_record_stop_replaying (...)\n", debug_target.to_shortname); + debug_target.to_record_stop_replaying (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_record_stop_replaying (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_goto_record_begin (struct target_ops *self) { @@ -3958,6 +4130,8 @@ install_delegators (struct target_ops *ops) ops->to_disconnect = delegate_disconnect; if (ops->to_resume == NULL) ops->to_resume = delegate_resume; + if (ops->to_commit_resume == NULL) + ops->to_commit_resume = delegate_commit_resume; if (ops->to_wait == NULL) ops->to_wait = delegate_wait; if (ops->to_fetch_registers == NULL) @@ -4008,6 +4182,8 @@ install_delegators (struct target_ops *ops) ops->to_can_accel_watchpoint_condition = delegate_can_accel_watchpoint_condition; if (ops->to_masked_watch_num_registers == NULL) ops->to_masked_watch_num_registers = delegate_masked_watch_num_registers; + if (ops->to_can_do_single_step == NULL) + ops->to_can_do_single_step = delegate_can_do_single_step; if (ops->to_terminal_init == NULL) ops->to_terminal_init = delegate_terminal_init; if (ops->to_terminal_inferior == NULL) @@ -4038,6 +4214,8 @@ install_delegators (struct target_ops *ops) ops->to_insert_exec_catchpoint = delegate_insert_exec_catchpoint; if (ops->to_remove_exec_catchpoint == NULL) ops->to_remove_exec_catchpoint = delegate_remove_exec_catchpoint; + if (ops->to_follow_exec == NULL) + ops->to_follow_exec = delegate_follow_exec; if (ops->to_set_syscall_catchpoint == NULL) ops->to_set_syscall_catchpoint = delegate_set_syscall_catchpoint; if (ops->to_has_exited == NULL) @@ -4064,8 +4242,8 @@ install_delegators (struct target_ops *ops) ops->to_stop = delegate_stop; if (ops->to_interrupt == NULL) ops->to_interrupt = delegate_interrupt; - if (ops->to_check_pending_interrupt == NULL) - ops->to_check_pending_interrupt = delegate_check_pending_interrupt; + if (ops->to_pass_ctrlc == NULL) + ops->to_pass_ctrlc = delegate_pass_ctrlc; if (ops->to_rcmd == NULL) ops->to_rcmd = delegate_rcmd; if (ops->to_pid_to_exec_file == NULL) @@ -4080,6 +4258,8 @@ install_delegators (struct target_ops *ops) ops->to_is_async_p = delegate_is_async_p; if (ops->to_async == NULL) ops->to_async = delegate_async; + if (ops->to_thread_events == NULL) + ops->to_thread_events = delegate_thread_events; if (ops->to_supports_non_stop == NULL) ops->to_supports_non_stop = delegate_supports_non_stop; if (ops->to_always_non_stop_p == NULL) @@ -4096,6 +4276,8 @@ install_delegators (struct target_ops *ops) ops->to_get_thread_local_address = delegate_get_thread_local_address; if (ops->to_xfer_partial == NULL) ops->to_xfer_partial = delegate_xfer_partial; + if (ops->to_get_memory_xfer_limit == NULL) + ops->to_get_memory_xfer_limit = delegate_get_memory_xfer_limit; if (ops->to_memory_map == NULL) ops->to_memory_map = delegate_memory_map; if (ops->to_flash_erase == NULL) @@ -4214,6 +4396,10 @@ install_delegators (struct target_ops *ops) ops->to_delete_record = delegate_delete_record; if (ops->to_record_is_replaying == NULL) ops->to_record_is_replaying = delegate_record_is_replaying; + if (ops->to_record_will_replay == NULL) + ops->to_record_will_replay = delegate_record_will_replay; + if (ops->to_record_stop_replaying == NULL) + ops->to_record_stop_replaying = delegate_record_stop_replaying; if (ops->to_goto_record_begin == NULL) ops->to_goto_record_begin = delegate_goto_record_begin; if (ops->to_goto_record_end == NULL) @@ -4251,7 +4437,8 @@ install_dummy_methods (struct target_ops *ops) ops->to_detach = tdefault_detach; ops->to_disconnect = tdefault_disconnect; ops->to_resume = tdefault_resume; - ops->to_wait = tdefault_wait; + ops->to_commit_resume = tdefault_commit_resume; + ops->to_wait = default_target_wait; ops->to_fetch_registers = tdefault_fetch_registers; ops->to_store_registers = tdefault_store_registers; ops->to_prepare_to_store = tdefault_prepare_to_store; @@ -4276,6 +4463,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_region_ok_for_hw_watchpoint = default_region_ok_for_hw_watchpoint; ops->to_can_accel_watchpoint_condition = tdefault_can_accel_watchpoint_condition; ops->to_masked_watch_num_registers = tdefault_masked_watch_num_registers; + ops->to_can_do_single_step = tdefault_can_do_single_step; ops->to_terminal_init = tdefault_terminal_init; ops->to_terminal_inferior = tdefault_terminal_inferior; ops->to_terminal_ours_for_output = tdefault_terminal_ours_for_output; @@ -4291,6 +4479,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_follow_fork = default_follow_fork; ops->to_insert_exec_catchpoint = tdefault_insert_exec_catchpoint; ops->to_remove_exec_catchpoint = tdefault_remove_exec_catchpoint; + ops->to_follow_exec = tdefault_follow_exec; ops->to_set_syscall_catchpoint = tdefault_set_syscall_catchpoint; ops->to_has_exited = tdefault_has_exited; ops->to_mourn_inferior = default_mourn_inferior; @@ -4304,7 +4493,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_thread_name = tdefault_thread_name; ops->to_stop = tdefault_stop; ops->to_interrupt = tdefault_interrupt; - ops->to_check_pending_interrupt = tdefault_check_pending_interrupt; + ops->to_pass_ctrlc = default_target_pass_ctrlc; ops->to_rcmd = default_rcmd; ops->to_pid_to_exec_file = tdefault_pid_to_exec_file; ops->to_log_command = tdefault_log_command; @@ -4312,6 +4501,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_can_async_p = tdefault_can_async_p; ops->to_is_async_p = tdefault_is_async_p; ops->to_async = tdefault_async; + ops->to_thread_events = tdefault_thread_events; ops->to_supports_non_stop = tdefault_supports_non_stop; ops->to_always_non_stop_p = tdefault_always_non_stop_p; ops->to_find_memory_regions = dummy_find_memory_regions; @@ -4320,6 +4510,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_goto_bookmark = tdefault_goto_bookmark; ops->to_get_thread_local_address = tdefault_get_thread_local_address; ops->to_xfer_partial = tdefault_xfer_partial; + ops->to_get_memory_xfer_limit = tdefault_get_memory_xfer_limit; ops->to_memory_map = tdefault_memory_map; ops->to_flash_erase = tdefault_flash_erase; ops->to_flash_done = tdefault_flash_done; @@ -4379,6 +4570,8 @@ install_dummy_methods (struct target_ops *ops) ops->to_save_record = tdefault_save_record; ops->to_delete_record = tdefault_delete_record; ops->to_record_is_replaying = tdefault_record_is_replaying; + ops->to_record_will_replay = tdefault_record_will_replay; + ops->to_record_stop_replaying = tdefault_record_stop_replaying; ops->to_goto_record_begin = tdefault_goto_record_begin; ops->to_goto_record_end = tdefault_goto_record_end; ops->to_goto_record = tdefault_goto_record; @@ -4402,6 +4595,7 @@ init_debug_target (struct target_ops *ops) ops->to_detach = debug_detach; ops->to_disconnect = debug_disconnect; ops->to_resume = debug_resume; + ops->to_commit_resume = debug_commit_resume; ops->to_wait = debug_wait; ops->to_fetch_registers = debug_fetch_registers; ops->to_store_registers = debug_store_registers; @@ -4427,6 +4621,7 @@ init_debug_target (struct target_ops *ops) ops->to_region_ok_for_hw_watchpoint = debug_region_ok_for_hw_watchpoint; ops->to_can_accel_watchpoint_condition = debug_can_accel_watchpoint_condition; ops->to_masked_watch_num_registers = debug_masked_watch_num_registers; + ops->to_can_do_single_step = debug_can_do_single_step; ops->to_terminal_init = debug_terminal_init; ops->to_terminal_inferior = debug_terminal_inferior; ops->to_terminal_ours_for_output = debug_terminal_ours_for_output; @@ -4442,6 +4637,7 @@ init_debug_target (struct target_ops *ops) ops->to_follow_fork = debug_follow_fork; ops->to_insert_exec_catchpoint = debug_insert_exec_catchpoint; ops->to_remove_exec_catchpoint = debug_remove_exec_catchpoint; + ops->to_follow_exec = debug_follow_exec; ops->to_set_syscall_catchpoint = debug_set_syscall_catchpoint; ops->to_has_exited = debug_has_exited; ops->to_mourn_inferior = debug_mourn_inferior; @@ -4455,7 +4651,7 @@ init_debug_target (struct target_ops *ops) ops->to_thread_name = debug_thread_name; ops->to_stop = debug_stop; ops->to_interrupt = debug_interrupt; - ops->to_check_pending_interrupt = debug_check_pending_interrupt; + ops->to_pass_ctrlc = debug_pass_ctrlc; ops->to_rcmd = debug_rcmd; ops->to_pid_to_exec_file = debug_pid_to_exec_file; ops->to_log_command = debug_log_command; @@ -4463,6 +4659,7 @@ init_debug_target (struct target_ops *ops) ops->to_can_async_p = debug_can_async_p; ops->to_is_async_p = debug_is_async_p; ops->to_async = debug_async; + ops->to_thread_events = debug_thread_events; ops->to_supports_non_stop = debug_supports_non_stop; ops->to_always_non_stop_p = debug_always_non_stop_p; ops->to_find_memory_regions = debug_find_memory_regions; @@ -4471,6 +4668,7 @@ init_debug_target (struct target_ops *ops) ops->to_goto_bookmark = debug_goto_bookmark; ops->to_get_thread_local_address = debug_get_thread_local_address; ops->to_xfer_partial = debug_xfer_partial; + ops->to_get_memory_xfer_limit = debug_get_memory_xfer_limit; ops->to_memory_map = debug_memory_map; ops->to_flash_erase = debug_flash_erase; ops->to_flash_done = debug_flash_done; @@ -4530,6 +4728,8 @@ init_debug_target (struct target_ops *ops) ops->to_save_record = debug_save_record; ops->to_delete_record = debug_delete_record; ops->to_record_is_replaying = debug_record_is_replaying; + ops->to_record_will_replay = debug_record_will_replay; + ops->to_record_stop_replaying = debug_record_stop_replaying; ops->to_goto_record_begin = debug_goto_record_begin; ops->to_goto_record_end = debug_goto_record_end; ops->to_goto_record = debug_goto_record;