X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftarget-delegates.c;h=57e7939b4194ac80058f2827bca00386ae93863b;hb=73971819031d74eb846805a9fbfad04ba1dff500;hp=3ca24b7966326bf8b244b968c3b3d0fb26d2ea95;hpb=6a5f844b29319793deb3840b20803bd3a0fa01a2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 3ca24b7966..57e7939b41 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -4,22 +4,27 @@ /* To regenerate this file, run:*/ /* make-target-delegates target.h > target-delegates.c */ static void -delegate_attach (struct target_ops *self, char *arg1, int arg2) +delegate_post_attach (struct target_ops *self, int arg1) { self = self->beneath; - self->to_attach (self, arg1, arg2); + self->to_post_attach (self, arg1); } static void -delegate_post_attach (struct target_ops *self, int arg1) +tdefault_post_attach (struct target_ops *self, int arg1) { - self = self->beneath; - self->to_post_attach (self, arg1); } static void -tdefault_post_attach (struct target_ops *self, int arg1) +debug_post_attach (struct target_ops *self, int arg1) { + fprintf_unfiltered (gdb_stdlog, "-> %s->to_post_attach (...)\n", debug_target.to_shortname); + debug_target.to_post_attach (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_post_attach (", 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 void @@ -35,18 +40,46 @@ tdefault_detach (struct target_ops *self, const char *arg1, int arg2) } static void -delegate_disconnect (struct target_ops *self, char *arg1, int arg2) +debug_detach (struct target_ops *self, const char *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_detach (...)\n", debug_target.to_shortname); + debug_target.to_detach (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_detach (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static void +delegate_disconnect (struct target_ops *self, const char *arg1, int arg2) { self = self->beneath; self->to_disconnect (self, arg1, arg2); } static void -tdefault_disconnect (struct target_ops *self, char *arg1, int arg2) +tdefault_disconnect (struct target_ops *self, const char *arg1, int arg2) { tcomplain (); } +static void +debug_disconnect (struct target_ops *self, const char *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_disconnect (...)\n", debug_target.to_shortname); + debug_target.to_disconnect (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_disconnect (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_resume (struct target_ops *self, ptid_t arg1, int arg2, enum gdb_signal arg3) { @@ -60,6 +93,22 @@ tdefault_resume (struct target_ops *self, ptid_t arg1, int arg2, enum gdb_signal noprocess (); } +static void +debug_resume (struct target_ops *self, ptid_t arg1, int arg2, enum gdb_signal arg3) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_resume (...)\n", debug_target.to_shortname); + debug_target.to_resume (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_resume (", 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_step (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_gdb_signal (arg3); + fputs_unfiltered (")\n", gdb_stdlog); +} + static ptid_t delegate_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) { @@ -68,9 +117,23 @@ delegate_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *a } static ptid_t -tdefault_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) -{ - noprocess (); +debug_wait (struct target_ops *self, ptid_t arg1, struct target_waitstatus *arg2, int arg3) +{ + ptid_t result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_wait (...)\n", debug_target.to_shortname); + result = debug_target.to_wait (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_wait (", 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_struct_target_waitstatus_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_options (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_ptid_t (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; } static void @@ -85,6 +148,20 @@ tdefault_fetch_registers (struct target_ops *self, struct regcache *arg1, int ar { } +static void +debug_fetch_registers (struct target_ops *self, struct regcache *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_fetch_registers (...)\n", debug_target.to_shortname); + debug_target.to_fetch_registers (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_fetch_registers (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_regcache_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_store_registers (struct target_ops *self, struct regcache *arg1, int arg2) { @@ -98,6 +175,20 @@ tdefault_store_registers (struct target_ops *self, struct regcache *arg1, int ar noprocess (); } +static void +debug_store_registers (struct target_ops *self, struct regcache *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_store_registers (...)\n", debug_target.to_shortname); + debug_target.to_store_registers (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_store_registers (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_regcache_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_prepare_to_store (struct target_ops *self, struct regcache *arg1) { @@ -111,6 +202,18 @@ tdefault_prepare_to_store (struct target_ops *self, struct regcache *arg1) noprocess (); } +static void +debug_prepare_to_store (struct target_ops *self, struct regcache *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_prepare_to_store (...)\n", debug_target.to_shortname); + debug_target.to_prepare_to_store (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_prepare_to_store (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_regcache_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_files_info (struct target_ops *self) { @@ -123,6 +226,16 @@ tdefault_files_info (struct target_ops *self) { } +static void +debug_files_info (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_files_info (...)\n", debug_target.to_shortname); + debug_target.to_files_info (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_files_info (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_insert_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) { @@ -131,25 +244,191 @@ delegate_insert_breakpoint (struct target_ops *self, struct gdbarch *arg1, struc } static int -delegate_remove_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +debug_insert_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_breakpoint (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_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_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +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, arg3); +} + +static int +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, 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); + return result; +} + +static int +delegate_stopped_by_sw_breakpoint (struct target_ops *self) +{ + self = self->beneath; + return self->to_stopped_by_sw_breakpoint (self); +} + +static int +tdefault_stopped_by_sw_breakpoint (struct target_ops *self) +{ + return 0; +} + +static int +debug_stopped_by_sw_breakpoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stopped_by_sw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_stopped_by_sw_breakpoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stopped_by_sw_breakpoint (", 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 int +delegate_supports_stopped_by_sw_breakpoint (struct target_ops *self) +{ + self = self->beneath; + return self->to_supports_stopped_by_sw_breakpoint (self); +} + +static int +tdefault_supports_stopped_by_sw_breakpoint (struct target_ops *self) +{ + return 0; +} + +static int +debug_supports_stopped_by_sw_breakpoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_stopped_by_sw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_stopped_by_sw_breakpoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_stopped_by_sw_breakpoint (", 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 int +delegate_stopped_by_hw_breakpoint (struct target_ops *self) +{ + self = self->beneath; + return self->to_stopped_by_hw_breakpoint (self); +} + +static int +tdefault_stopped_by_hw_breakpoint (struct target_ops *self) +{ + return 0; +} + +static int +debug_stopped_by_hw_breakpoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stopped_by_hw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_stopped_by_hw_breakpoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stopped_by_hw_breakpoint (", 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 int +delegate_supports_stopped_by_hw_breakpoint (struct target_ops *self) { self = self->beneath; - return self->to_remove_breakpoint (self, arg1, arg2); + return self->to_supports_stopped_by_hw_breakpoint (self); +} + +static int +tdefault_supports_stopped_by_hw_breakpoint (struct target_ops *self) +{ + return 0; +} + +static int +debug_supports_stopped_by_hw_breakpoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_stopped_by_hw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_stopped_by_hw_breakpoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_stopped_by_hw_breakpoint (", 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 int -delegate_can_use_hw_breakpoint (struct target_ops *self, int arg1, int arg2, int arg3) +delegate_can_use_hw_breakpoint (struct target_ops *self, enum bptype arg1, int arg2, int arg3) { self = self->beneath; return self->to_can_use_hw_breakpoint (self, arg1, arg2, arg3); } static int -tdefault_can_use_hw_breakpoint (struct target_ops *self, int arg1, int arg2, int arg3) +tdefault_can_use_hw_breakpoint (struct target_ops *self, enum bptype arg1, int arg2, int arg3) { return 0; } +static int +debug_can_use_hw_breakpoint (struct target_ops *self, enum bptype arg1, int arg2, int arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_use_hw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_can_use_hw_breakpoint (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_use_hw_breakpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_bptype (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_ranged_break_num_registers (struct target_ops *self) { @@ -163,6 +442,20 @@ tdefault_ranged_break_num_registers (struct target_ops *self) return -1; } +static int +debug_ranged_break_num_registers (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_ranged_break_num_registers (...)\n", debug_target.to_shortname); + result = debug_target.to_ranged_break_num_registers (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_ranged_break_num_registers (", 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 int delegate_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) { @@ -176,6 +469,24 @@ tdefault_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, st return -1; } +static int +debug_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_hw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_hw_breakpoint (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_hw_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_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) { @@ -190,57 +501,159 @@ tdefault_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, st } static int -delegate_remove_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) +debug_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *arg1, struct bp_target_info *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_hw_breakpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_hw_breakpoint (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_hw_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_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +delegate_remove_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) { self = self->beneath; return self->to_remove_watchpoint (self, arg1, arg2, arg3, arg4); } static int -tdefault_remove_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) +tdefault_remove_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) { return -1; } static int -delegate_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) +debug_remove_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_watchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_watchpoint (&debug_target, arg1, arg2, arg3, arg4); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_watchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_target_hw_bp_type (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_expression_p (arg4); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +delegate_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) { self = self->beneath; return self->to_insert_watchpoint (self, arg1, arg2, arg3, arg4); } static int -tdefault_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) +tdefault_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) { return -1; } static int -delegate_insert_mask_watchpoint (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +debug_insert_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2, enum target_hw_bp_type arg3, struct expression *arg4) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_watchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_watchpoint (&debug_target, arg1, arg2, arg3, arg4); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_watchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_target_hw_bp_type (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_expression_p (arg4); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +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 -delegate_remove_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); + result = debug_target.to_insert_mask_watchpoint (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_mask_watchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_target_hw_bp_type (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +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, enum target_hw_bp_type arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_mask_watchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_mask_watchpoint (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_mask_watchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_target_hw_bp_type (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_stopped_by_watchpoint (struct target_ops *self) { @@ -254,6 +667,20 @@ tdefault_stopped_by_watchpoint (struct target_ops *self) return 0; } +static int +debug_stopped_by_watchpoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stopped_by_watchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_stopped_by_watchpoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stopped_by_watchpoint (", 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 int delegate_stopped_data_address (struct target_ops *self, CORE_ADDR *arg1) { @@ -267,6 +694,22 @@ tdefault_stopped_data_address (struct target_ops *self, CORE_ADDR *arg1) return 0; } +static int +debug_stopped_data_address (struct target_ops *self, CORE_ADDR *arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stopped_data_address (...)\n", debug_target.to_shortname); + result = debug_target.to_stopped_data_address (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stopped_data_address (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) { @@ -274,6 +717,26 @@ delegate_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, return self->to_watchpoint_addr_within_range (self, arg1, arg2, arg3); } +static int +debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_watchpoint_addr_within_range (...)\n", debug_target.to_shortname); + result = debug_target.to_watchpoint_addr_within_range (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_watchpoint_addr_within_range (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2) { @@ -281,6 +744,24 @@ delegate_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, i return self->to_region_ok_for_hw_watchpoint (self, arg1, arg2); } +static int +debug_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_region_ok_for_hw_watchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_region_ok_for_hw_watchpoint (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_region_ok_for_hw_watchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (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 int delegate_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) { @@ -294,6 +775,28 @@ tdefault_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1 return 0; } +static int +debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_accel_watchpoint_condition (...)\n", debug_target.to_shortname); + result = debug_target.to_can_accel_watchpoint_condition (&debug_target, arg1, arg2, arg3, arg4); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_accel_watchpoint_condition (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_expression_p (arg4); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_masked_watch_num_registers (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2) { @@ -307,6 +810,51 @@ tdefault_masked_watch_num_registers (struct target_ops *self, CORE_ADDR arg1, CO return -1; } +static int +debug_masked_watch_num_registers (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_masked_watch_num_registers (...)\n", debug_target.to_shortname); + result = debug_target.to_masked_watch_num_registers (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_masked_watch_num_registers (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + 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) { @@ -319,6 +867,16 @@ tdefault_terminal_init (struct target_ops *self) { } +static void +debug_terminal_init (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_init (...)\n", debug_target.to_shortname); + debug_target.to_terminal_init (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_init (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_terminal_inferior (struct target_ops *self) { @@ -331,6 +889,16 @@ tdefault_terminal_inferior (struct target_ops *self) { } +static void +debug_terminal_inferior (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_inferior (...)\n", debug_target.to_shortname); + debug_target.to_terminal_inferior (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_inferior (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_terminal_ours_for_output (struct target_ops *self) { @@ -343,6 +911,16 @@ tdefault_terminal_ours_for_output (struct target_ops *self) { } +static void +debug_terminal_ours_for_output (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_ours_for_output (...)\n", debug_target.to_shortname); + debug_target.to_terminal_ours_for_output (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_ours_for_output (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_terminal_ours (struct target_ops *self) { @@ -356,22 +934,34 @@ tdefault_terminal_ours (struct target_ops *self) } static void -delegate_terminal_save_ours (struct target_ops *self) +debug_terminal_ours (struct target_ops *self) { - self = self->beneath; - self->to_terminal_save_ours (self); + fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_ours (...)\n", debug_target.to_shortname); + debug_target.to_terminal_ours (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_ours (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); } static void -tdefault_terminal_save_ours (struct target_ops *self) +delegate_terminal_info (struct target_ops *self, const char *arg1, int arg2) { + self = self->beneath; + self->to_terminal_info (self, arg1, arg2); } static void -delegate_terminal_info (struct target_ops *self, const char *arg1, int arg2) +debug_terminal_info (struct target_ops *self, const char *arg1, int arg2) { - self = self->beneath; - self->to_terminal_info (self, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_info (...)\n", debug_target.to_shortname); + debug_target.to_terminal_info (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_info (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); } static void @@ -388,18 +978,42 @@ tdefault_kill (struct target_ops *self) } static void -delegate_load (struct target_ops *self, char *arg1, int arg2) +debug_kill (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_kill (...)\n", debug_target.to_shortname); + debug_target.to_kill (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_kill (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static void +delegate_load (struct target_ops *self, const char *arg1, int arg2) { self = self->beneath; self->to_load (self, arg1, arg2); } static void -tdefault_load (struct target_ops *self, char *arg1, int arg2) +tdefault_load (struct target_ops *self, const char *arg1, int arg2) { tcomplain (); } +static void +debug_load (struct target_ops *self, const char *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_load (...)\n", debug_target.to_shortname); + debug_target.to_load (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_load (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_post_startup_inferior (struct target_ops *self, ptid_t arg1) { @@ -412,6 +1026,18 @@ tdefault_post_startup_inferior (struct target_ops *self, ptid_t arg1) { } +static void +debug_post_startup_inferior (struct target_ops *self, ptid_t arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_post_startup_inferior (...)\n", debug_target.to_shortname); + debug_target.to_post_startup_inferior (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_post_startup_inferior (", 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 (")\n", gdb_stdlog); +} + static int delegate_insert_fork_catchpoint (struct target_ops *self, int arg1) { @@ -425,6 +1051,22 @@ tdefault_insert_fork_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_insert_fork_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_fork_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_fork_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_fork_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_remove_fork_catchpoint (struct target_ops *self, int arg1) { @@ -438,6 +1080,22 @@ tdefault_remove_fork_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_remove_fork_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_fork_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_fork_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_fork_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_insert_vfork_catchpoint (struct target_ops *self, int arg1) { @@ -451,6 +1109,22 @@ tdefault_insert_vfork_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_insert_vfork_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_vfork_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_vfork_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_vfork_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_remove_vfork_catchpoint (struct target_ops *self, int arg1) { @@ -464,6 +1138,22 @@ tdefault_remove_vfork_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_remove_vfork_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_vfork_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_vfork_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_vfork_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_follow_fork (struct target_ops *self, int arg1, int arg2) { @@ -471,6 +1161,24 @@ delegate_follow_fork (struct target_ops *self, int arg1, int arg2) return self->to_follow_fork (self, arg1, arg2); } +static int +debug_follow_fork (struct target_ops *self, int arg1, int arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_follow_fork (...)\n", debug_target.to_shortname); + result = debug_target.to_follow_fork (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_follow_fork (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (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 int delegate_insert_exec_catchpoint (struct target_ops *self, int arg1) { @@ -484,6 +1192,22 @@ tdefault_insert_exec_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_insert_exec_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insert_exec_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_insert_exec_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insert_exec_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_remove_exec_catchpoint (struct target_ops *self, int arg1) { @@ -497,6 +1221,48 @@ tdefault_remove_exec_catchpoint (struct target_ops *self, int arg1) return 1; } +static int +debug_remove_exec_catchpoint (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_remove_exec_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_remove_exec_catchpoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_remove_exec_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + 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) { @@ -510,6 +1276,30 @@ tdefault_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, in return 1; } +static int +debug_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_syscall_catchpoint (...)\n", debug_target.to_shortname); + result = debug_target.to_set_syscall_catchpoint (&debug_target, arg1, arg2, arg3, arg4, arg5); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_syscall_catchpoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg4); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int_p (arg5); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3) { @@ -523,6 +1313,26 @@ tdefault_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3) return 0; } +static int +debug_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_has_exited (...)\n", debug_target.to_shortname); + result = debug_target.to_has_exited (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_has_exited (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int_p (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_mourn_inferior (struct target_ops *self) { @@ -530,6 +1340,16 @@ delegate_mourn_inferior (struct target_ops *self) self->to_mourn_inferior (self); } +static void +debug_mourn_inferior (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_mourn_inferior (...)\n", debug_target.to_shortname); + debug_target.to_mourn_inferior (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_mourn_inferior (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_can_run (struct target_ops *self) { @@ -543,28 +1363,70 @@ tdefault_can_run (struct target_ops *self) return 0; } +static int +debug_can_run (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_run (...)\n", debug_target.to_shortname); + result = debug_target.to_can_run (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_run (", 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_pass_signals (struct target_ops *self, int arg1, unsigned char *arg2) +delegate_pass_signals (struct target_ops *self, int arg1, unsigned char * arg2) { self = self->beneath; self->to_pass_signals (self, arg1, arg2); } static void -tdefault_pass_signals (struct target_ops *self, int arg1, unsigned char *arg2) +tdefault_pass_signals (struct target_ops *self, int arg1, unsigned char * arg2) +{ +} + +static void +debug_pass_signals (struct target_ops *self, int arg1, unsigned char * arg2) { + fprintf_unfiltered (gdb_stdlog, "-> %s->to_pass_signals (...)\n", debug_target.to_shortname); + debug_target.to_pass_signals (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_pass_signals (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_signals (arg2); + fputs_unfiltered (")\n", gdb_stdlog); } static void -delegate_program_signals (struct target_ops *self, int arg1, unsigned char *arg2) +delegate_program_signals (struct target_ops *self, int arg1, unsigned char * arg2) { self = self->beneath; self->to_program_signals (self, arg1, arg2); } static void -tdefault_program_signals (struct target_ops *self, int arg1, unsigned char *arg2) +tdefault_program_signals (struct target_ops *self, int arg1, unsigned char * arg2) +{ +} + +static void +debug_program_signals (struct target_ops *self, int arg1, unsigned char * arg2) { + fprintf_unfiltered (gdb_stdlog, "-> %s->to_program_signals (...)\n", debug_target.to_shortname); + debug_target.to_program_signals (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_program_signals (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_signals (arg2); + fputs_unfiltered (")\n", gdb_stdlog); } static int @@ -580,16 +1442,42 @@ tdefault_thread_alive (struct target_ops *self, ptid_t arg1) return 0; } +static int +debug_thread_alive (struct target_ops *self, ptid_t arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_alive (...)\n", debug_target.to_shortname); + result = debug_target.to_thread_alive (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_alive (", 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 void -delegate_find_new_threads (struct target_ops *self) +delegate_update_thread_list (struct target_ops *self) { self = self->beneath; - self->to_find_new_threads (self); + self->to_update_thread_list (self); +} + +static void +tdefault_update_thread_list (struct target_ops *self) +{ } static void -tdefault_find_new_threads (struct target_ops *self) +debug_update_thread_list (struct target_ops *self) { + fprintf_unfiltered (gdb_stdlog, "-> %s->to_update_thread_list (...)\n", debug_target.to_shortname); + debug_target.to_update_thread_list (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_update_thread_list (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); } static char * @@ -599,6 +1487,22 @@ delegate_pid_to_str (struct target_ops *self, ptid_t arg1) return self->to_pid_to_str (self, arg1); } +static char * +debug_pid_to_str (struct target_ops *self, ptid_t arg1) +{ + char * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_pid_to_str (...)\n", debug_target.to_shortname); + result = debug_target.to_pid_to_str (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_pid_to_str (", 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_char_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static char * delegate_extra_thread_info (struct target_ops *self, struct thread_info *arg1) { @@ -613,18 +1517,50 @@ tdefault_extra_thread_info (struct target_ops *self, struct thread_info *arg1) } static char * +debug_extra_thread_info (struct target_ops *self, struct thread_info *arg1) +{ + char * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_extra_thread_info (...)\n", debug_target.to_shortname); + result = debug_target.to_extra_thread_info (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_extra_thread_info (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_thread_info_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_char_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +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 const char * +debug_thread_name (struct target_ops *self, struct thread_info *arg1) +{ + 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); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_thread_info_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_const_char_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_stop (struct target_ops *self, ptid_t arg1) { @@ -638,12 +1574,79 @@ tdefault_stop (struct target_ops *self, ptid_t arg1) } static void -delegate_rcmd (struct target_ops *self, char *arg1, struct ui_file *arg2) +debug_stop (struct target_ops *self, ptid_t arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stop (...)\n", debug_target.to_shortname); + debug_target.to_stop (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stop (", 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 (")\n", gdb_stdlog); +} + +static void +delegate_interrupt (struct target_ops *self, ptid_t arg1) +{ + self = self->beneath; + self->to_interrupt (self, arg1); +} + +static void +tdefault_interrupt (struct target_ops *self, ptid_t arg1) +{ +} + +static void +debug_interrupt (struct target_ops *self, ptid_t arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_interrupt (...)\n", debug_target.to_shortname); + debug_target.to_interrupt (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_interrupt (", 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 (")\n", gdb_stdlog); +} + +static void +delegate_pass_ctrlc (struct target_ops *self) +{ + self = self->beneath; + self->to_pass_ctrlc (self); +} + +static void +debug_pass_ctrlc (struct target_ops *self) +{ + 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); +} + +static void +delegate_rcmd (struct target_ops *self, const char *arg1, struct ui_file *arg2) { self = self->beneath; self->to_rcmd (self, arg1, arg2); } +static void +debug_rcmd (struct target_ops *self, const char *arg1, struct ui_file *arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_rcmd (...)\n", debug_target.to_shortname); + debug_target.to_rcmd (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_rcmd (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_ui_file_p (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static char * delegate_pid_to_exec_file (struct target_ops *self, int arg1) { @@ -657,6 +1660,22 @@ tdefault_pid_to_exec_file (struct target_ops *self, int arg1) return NULL; } +static char * +debug_pid_to_exec_file (struct target_ops *self, int arg1) +{ + char * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_pid_to_exec_file (...)\n", debug_target.to_shortname); + result = debug_target.to_pid_to_exec_file (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_pid_to_exec_file (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_char_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_log_command (struct target_ops *self, const char *arg1) { @@ -669,6 +1688,18 @@ tdefault_log_command (struct target_ops *self, const char *arg1) { } +static void +debug_log_command (struct target_ops *self, const char *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_log_command (...)\n", debug_target.to_shortname); + debug_target.to_log_command (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_log_command (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static struct target_section_table * delegate_get_section_table (struct target_ops *self) { @@ -682,6 +1713,20 @@ tdefault_get_section_table (struct target_ops *self) return NULL; } +static struct target_section_table * +debug_get_section_table (struct target_ops *self) +{ + struct target_section_table * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_section_table (...)\n", debug_target.to_shortname); + result = debug_target.to_get_section_table (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_section_table (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_struct_target_section_table_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_can_async_p (struct target_ops *self) { @@ -689,6 +1734,26 @@ delegate_can_async_p (struct target_ops *self) return self->to_can_async_p (self); } +static int +tdefault_can_async_p (struct target_ops *self) +{ + return 0; +} + +static int +debug_can_async_p (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_async_p (...)\n", debug_target.to_shortname); + result = debug_target.to_can_async_p (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_async_p (", 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 int delegate_is_async_p (struct target_ops *self) { @@ -696,19 +1761,129 @@ delegate_is_async_p (struct target_ops *self) return self->to_is_async_p (self); } +static int +tdefault_is_async_p (struct target_ops *self) +{ + return 0; +} + +static int +debug_is_async_p (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_is_async_p (...)\n", debug_target.to_shortname); + result = debug_target.to_is_async_p (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_is_async_p (", 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_async (struct target_ops *self, async_callback_ftype *arg1, void *arg2) +delegate_async (struct target_ops *self, int arg1) { self = self->beneath; - self->to_async (self, arg1, arg2); + self->to_async (self, arg1); } static void -tdefault_async (struct target_ops *self, async_callback_ftype *arg1, void *arg2) +tdefault_async (struct target_ops *self, int arg1) { tcomplain (); } +static void +debug_async (struct target_ops *self, int arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_async (...)\n", debug_target.to_shortname); + debug_target.to_async (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_async (", 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 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) +{ + self = self->beneath; + return self->to_supports_non_stop (self); +} + +static int +tdefault_supports_non_stop (struct target_ops *self) +{ + return 0; +} + +static int +debug_supports_non_stop (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_non_stop (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_non_stop (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_non_stop (", 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 int +delegate_always_non_stop_p (struct target_ops *self) +{ + self = self->beneath; + return self->to_always_non_stop_p (self); +} + +static int +tdefault_always_non_stop_p (struct target_ops *self) +{ + return 0; +} + +static int +debug_always_non_stop_p (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_always_non_stop_p (...)\n", debug_target.to_shortname); + result = debug_target.to_always_non_stop_p (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_always_non_stop_p (", 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 int delegate_find_memory_regions (struct target_ops *self, find_memory_region_ftype arg1, void *arg2) { @@ -716,52 +1891,208 @@ delegate_find_memory_regions (struct target_ops *self, find_memory_region_ftype return self->to_find_memory_regions (self, arg1, arg2); } -static char * +static int +debug_find_memory_regions (struct target_ops *self, find_memory_region_ftype arg1, void *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_find_memory_regions (...)\n", debug_target.to_shortname); + result = debug_target.to_find_memory_regions (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_find_memory_regions (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_find_memory_region_ftype (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_void_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static char * delegate_make_corefile_notes (struct target_ops *self, bfd *arg1, int *arg2) { self = self->beneath; return self->to_make_corefile_notes (self, arg1, arg2); } -static gdb_byte * -delegate_get_bookmark (struct target_ops *self, char *arg1, int arg2) +static char * +debug_make_corefile_notes (struct target_ops *self, bfd *arg1, int *arg2) +{ + char * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_make_corefile_notes (...)\n", debug_target.to_shortname); + result = debug_target.to_make_corefile_notes (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_make_corefile_notes (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_bfd_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_char_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static gdb_byte * +delegate_get_bookmark (struct target_ops *self, const char *arg1, int arg2) { self = self->beneath; return self->to_get_bookmark (self, arg1, arg2); } -static gdb_byte * -tdefault_get_bookmark (struct target_ops *self, char *arg1, int arg2) +static gdb_byte * +tdefault_get_bookmark (struct target_ops *self, const char *arg1, int arg2) { tcomplain (); } +static gdb_byte * +debug_get_bookmark (struct target_ops *self, const char *arg1, int arg2) +{ + gdb_byte * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_bookmark (...)\n", debug_target.to_shortname); + result = debug_target.to_get_bookmark (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_bookmark (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_gdb_byte_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void -delegate_goto_bookmark (struct target_ops *self, gdb_byte *arg1, int arg2) +delegate_goto_bookmark (struct target_ops *self, const gdb_byte *arg1, int arg2) { self = self->beneath; self->to_goto_bookmark (self, arg1, arg2); } static void -tdefault_goto_bookmark (struct target_ops *self, gdb_byte *arg1, int arg2) +tdefault_goto_bookmark (struct target_ops *self, const gdb_byte *arg1, int arg2) { tcomplain (); } -static enum target_xfer_status -delegate_xfer_partial (struct target_ops *self, enum target_object arg1, const char *arg2, gdb_byte *arg3, const gdb_byte *arg4, ULONGEST arg5, ULONGEST arg6, ULONGEST *arg7) +static void +debug_goto_bookmark (struct target_ops *self, const gdb_byte *arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_goto_bookmark (...)\n", debug_target.to_shortname); + debug_target.to_goto_bookmark (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_goto_bookmark (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_gdb_byte_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static CORE_ADDR +delegate_get_thread_local_address (struct target_ops *self, ptid_t arg1, CORE_ADDR arg2, CORE_ADDR arg3) +{ + self = self->beneath; + return self->to_get_thread_local_address (self, arg1, arg2, arg3); +} + +static CORE_ADDR +tdefault_get_thread_local_address (struct target_ops *self, ptid_t arg1, CORE_ADDR arg2, CORE_ADDR arg3) +{ + generic_tls_error (); +} + +static CORE_ADDR +debug_get_thread_local_address (struct target_ops *self, ptid_t arg1, CORE_ADDR arg2, CORE_ADDR arg3) +{ + CORE_ADDR result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_thread_local_address (...)\n", debug_target.to_shortname); + result = debug_target.to_get_thread_local_address (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_thread_local_address (", 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_CORE_ADDR (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_CORE_ADDR (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static enum target_xfer_status +delegate_xfer_partial (struct target_ops *self, enum target_object arg1, const char *arg2, gdb_byte *arg3, const gdb_byte *arg4, ULONGEST arg5, ULONGEST arg6, ULONGEST *arg7) { self = self->beneath; return self->to_xfer_partial (self, arg1, arg2, arg3, arg4, arg5, arg6, arg7); } -static enum target_xfer_status -tdefault_xfer_partial (struct target_ops *self, enum target_object arg1, const char *arg2, gdb_byte *arg3, const gdb_byte *arg4, ULONGEST arg5, ULONGEST arg6, ULONGEST *arg7) +static enum target_xfer_status +tdefault_xfer_partial (struct target_ops *self, enum target_object arg1, const char *arg2, gdb_byte *arg3, const gdb_byte *arg4, ULONGEST arg5, ULONGEST arg6, ULONGEST *arg7) { return TARGET_XFER_E_IO; } +static enum target_xfer_status +debug_xfer_partial (struct target_ops *self, enum target_object arg1, const char *arg2, gdb_byte *arg3, const gdb_byte *arg4, ULONGEST arg5, ULONGEST arg6, ULONGEST *arg7) +{ + enum target_xfer_status result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_xfer_partial (...)\n", debug_target.to_shortname); + result = debug_target.to_xfer_partial (&debug_target, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_xfer_partial (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_target_object (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_gdb_byte_p (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_gdb_byte_p (arg4); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg5); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg6); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST_p (arg7); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_enum_target_xfer_status (result); + fputs_unfiltered ("\n", gdb_stdlog); + 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) { @@ -775,6 +2106,20 @@ tdefault_memory_map (struct target_ops *self) return NULL; } +static VEC(mem_region_s) * +debug_memory_map (struct target_ops *self) +{ + VEC(mem_region_s) * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_memory_map (...)\n", debug_target.to_shortname); + result = debug_target.to_memory_map (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_memory_map (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_VEC_mem_region_s__p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_flash_erase (struct target_ops *self, ULONGEST arg1, LONGEST arg2) { @@ -788,6 +2133,20 @@ tdefault_flash_erase (struct target_ops *self, ULONGEST arg1, LONGEST arg2) tcomplain (); } +static void +debug_flash_erase (struct target_ops *self, ULONGEST arg1, LONGEST arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_flash_erase (...)\n", debug_target.to_shortname); + debug_target.to_flash_erase (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_flash_erase (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_LONGEST (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_flash_done (struct target_ops *self) { @@ -801,6 +2160,16 @@ tdefault_flash_done (struct target_ops *self) tcomplain (); } +static void +debug_flash_done (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_flash_done (...)\n", debug_target.to_shortname); + debug_target.to_flash_done (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_flash_done (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static const struct target_desc * delegate_read_description (struct target_ops *self) { @@ -814,6 +2183,20 @@ tdefault_read_description (struct target_ops *self) return NULL; } +static const struct target_desc * +debug_read_description (struct target_ops *self) +{ + const struct target_desc * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_read_description (...)\n", debug_target.to_shortname); + result = debug_target.to_read_description (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_read_description (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_const_struct_target_desc_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static ptid_t delegate_get_ada_task_ptid (struct target_ops *self, long arg1, long arg2) { @@ -821,6 +2204,24 @@ delegate_get_ada_task_ptid (struct target_ops *self, long arg1, long arg2) return self->to_get_ada_task_ptid (self, arg1, arg2); } +static ptid_t +debug_get_ada_task_ptid (struct target_ops *self, long arg1, long arg2) +{ + ptid_t result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_ada_task_ptid (...)\n", debug_target.to_shortname); + result = debug_target.to_get_ada_task_ptid (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_ada_task_ptid (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_long (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_long (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_ptid_t (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_auxv_parse (struct target_ops *self, gdb_byte **arg1, gdb_byte *arg2, CORE_ADDR *arg3, CORE_ADDR *arg4) { @@ -828,6 +2229,28 @@ delegate_auxv_parse (struct target_ops *self, gdb_byte **arg1, gdb_byte *arg2, C return self->to_auxv_parse (self, arg1, arg2, arg3, arg4); } +static int +debug_auxv_parse (struct target_ops *self, gdb_byte **arg1, gdb_byte *arg2, CORE_ADDR *arg3, CORE_ADDR *arg4) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_auxv_parse (...)\n", debug_target.to_shortname); + result = debug_target.to_auxv_parse (&debug_target, arg1, arg2, arg3, arg4); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_auxv_parse (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_gdb_byte_pp (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_gdb_byte_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR_p (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR_p (arg4); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_search_memory (struct target_ops *self, CORE_ADDR arg1, ULONGEST arg2, const gdb_byte *arg3, ULONGEST arg4, CORE_ADDR *arg5) { @@ -835,6 +2258,30 @@ delegate_search_memory (struct target_ops *self, CORE_ADDR arg1, ULONGEST arg2, return self->to_search_memory (self, arg1, arg2, arg3, arg4, arg5); } +static int +debug_search_memory (struct target_ops *self, CORE_ADDR arg1, ULONGEST arg2, const gdb_byte *arg3, ULONGEST arg4, CORE_ADDR *arg5) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_search_memory (...)\n", debug_target.to_shortname); + result = debug_target.to_search_memory (&debug_target, arg1, arg2, arg3, arg4, arg5); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_search_memory (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_gdb_byte_p (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg4); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR_p (arg5); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_can_execute_reverse (struct target_ops *self) { @@ -848,13 +2295,41 @@ tdefault_can_execute_reverse (struct target_ops *self) return 0; } -static enum exec_direction_kind +static int +debug_can_execute_reverse (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_execute_reverse (...)\n", debug_target.to_shortname); + result = debug_target.to_can_execute_reverse (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_execute_reverse (", 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 enum exec_direction_kind delegate_execution_direction (struct target_ops *self) { self = self->beneath; return self->to_execution_direction (self); } +static enum exec_direction_kind +debug_execution_direction (struct target_ops *self) +{ + enum exec_direction_kind result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_execution_direction (...)\n", debug_target.to_shortname); + result = debug_target.to_execution_direction (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_execution_direction (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_enum_exec_direction_kind (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_supports_multi_process (struct target_ops *self) { @@ -868,6 +2343,20 @@ tdefault_supports_multi_process (struct target_ops *self) return 0; } +static int +debug_supports_multi_process (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_multi_process (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_multi_process (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_multi_process (", 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 int delegate_supports_enable_disable_tracepoint (struct target_ops *self) { @@ -881,6 +2370,20 @@ tdefault_supports_enable_disable_tracepoint (struct target_ops *self) return 0; } +static int +debug_supports_enable_disable_tracepoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_enable_disable_tracepoint (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_enable_disable_tracepoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_enable_disable_tracepoint (", 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 int delegate_supports_string_tracing (struct target_ops *self) { @@ -894,6 +2397,20 @@ tdefault_supports_string_tracing (struct target_ops *self) return 0; } +static int +debug_supports_string_tracing (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_string_tracing (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_string_tracing (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_string_tracing (", 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 int delegate_supports_evaluation_of_breakpoint_conditions (struct target_ops *self) { @@ -907,6 +2424,20 @@ tdefault_supports_evaluation_of_breakpoint_conditions (struct target_ops *self) return 0; } +static int +debug_supports_evaluation_of_breakpoint_conditions (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_evaluation_of_breakpoint_conditions (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_evaluation_of_breakpoint_conditions (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_evaluation_of_breakpoint_conditions (", 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 int delegate_can_run_breakpoint_commands (struct target_ops *self) { @@ -920,6 +2451,20 @@ tdefault_can_run_breakpoint_commands (struct target_ops *self) return 0; } +static int +debug_can_run_breakpoint_commands (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_run_breakpoint_commands (...)\n", debug_target.to_shortname); + result = debug_target.to_can_run_breakpoint_commands (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_run_breakpoint_commands (", 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 struct gdbarch * delegate_thread_architecture (struct target_ops *self, ptid_t arg1) { @@ -927,6 +2472,72 @@ delegate_thread_architecture (struct target_ops *self, ptid_t arg1) return self->to_thread_architecture (self, arg1); } +static struct gdbarch * +debug_thread_architecture (struct target_ops *self, ptid_t arg1) +{ + struct gdbarch * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_architecture (...)\n", debug_target.to_shortname); + result = debug_target.to_thread_architecture (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_architecture (", 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_struct_gdbarch_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static struct address_space * +delegate_thread_address_space (struct target_ops *self, ptid_t arg1) +{ + self = self->beneath; + return self->to_thread_address_space (self, arg1); +} + +static struct address_space * +debug_thread_address_space (struct target_ops *self, ptid_t arg1) +{ + struct address_space * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_address_space (...)\n", debug_target.to_shortname); + result = debug_target.to_thread_address_space (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_address_space (", 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_struct_address_space_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static int +delegate_filesystem_is_local (struct target_ops *self) +{ + self = self->beneath; + return self->to_filesystem_is_local (self); +} + +static int +tdefault_filesystem_is_local (struct target_ops *self) +{ + return 1; +} + +static int +debug_filesystem_is_local (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_filesystem_is_local (...)\n", debug_target.to_shortname); + result = debug_target.to_filesystem_is_local (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_filesystem_is_local (", 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_trace_init (struct target_ops *self) { @@ -940,6 +2551,16 @@ tdefault_trace_init (struct target_ops *self) tcomplain (); } +static void +debug_trace_init (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_trace_init (...)\n", debug_target.to_shortname); + debug_target.to_trace_init (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_trace_init (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_download_tracepoint (struct target_ops *self, struct bp_location *arg1) { @@ -953,6 +2574,18 @@ tdefault_download_tracepoint (struct target_ops *self, struct bp_location *arg1) tcomplain (); } +static void +debug_download_tracepoint (struct target_ops *self, struct bp_location *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_download_tracepoint (...)\n", debug_target.to_shortname); + debug_target.to_download_tracepoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_download_tracepoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_bp_location_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_can_download_tracepoint (struct target_ops *self) { @@ -966,6 +2599,20 @@ tdefault_can_download_tracepoint (struct target_ops *self) return 0; } +static int +debug_can_download_tracepoint (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_download_tracepoint (...)\n", debug_target.to_shortname); + result = debug_target.to_can_download_tracepoint (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_download_tracepoint (", 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_download_trace_state_variable (struct target_ops *self, struct trace_state_variable *arg1) { @@ -979,6 +2626,18 @@ tdefault_download_trace_state_variable (struct target_ops *self, struct trace_st tcomplain (); } +static void +debug_download_trace_state_variable (struct target_ops *self, struct trace_state_variable *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_download_trace_state_variable (...)\n", debug_target.to_shortname); + debug_target.to_download_trace_state_variable (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_download_trace_state_variable (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_trace_state_variable_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) { @@ -987,9 +2646,21 @@ delegate_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) } static void -tdefault_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) +tdefault_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) +{ + tcomplain (); +} + +static void +debug_enable_tracepoint (struct target_ops *self, struct bp_location *arg1) { - tcomplain (); + fprintf_unfiltered (gdb_stdlog, "-> %s->to_enable_tracepoint (...)\n", debug_target.to_shortname); + debug_target.to_enable_tracepoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_enable_tracepoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_bp_location_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); } static void @@ -1005,6 +2676,18 @@ tdefault_disable_tracepoint (struct target_ops *self, struct bp_location *arg1) tcomplain (); } +static void +debug_disable_tracepoint (struct target_ops *self, struct bp_location *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_disable_tracepoint (...)\n", debug_target.to_shortname); + debug_target.to_disable_tracepoint (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_disable_tracepoint (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_bp_location_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_trace_set_readonly_regions (struct target_ops *self) { @@ -1018,6 +2701,16 @@ tdefault_trace_set_readonly_regions (struct target_ops *self) tcomplain (); } +static void +debug_trace_set_readonly_regions (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_trace_set_readonly_regions (...)\n", debug_target.to_shortname); + debug_target.to_trace_set_readonly_regions (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_trace_set_readonly_regions (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_trace_start (struct target_ops *self) { @@ -1031,6 +2724,16 @@ tdefault_trace_start (struct target_ops *self) tcomplain (); } +static void +debug_trace_start (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_trace_start (...)\n", debug_target.to_shortname); + debug_target.to_trace_start (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_trace_start (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_get_trace_status (struct target_ops *self, struct trace_status *arg1) { @@ -1044,6 +2747,22 @@ tdefault_get_trace_status (struct target_ops *self, struct trace_status *arg1) return -1; } +static int +debug_get_trace_status (struct target_ops *self, struct trace_status *arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_trace_status (...)\n", debug_target.to_shortname); + result = debug_target.to_get_trace_status (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_trace_status (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_trace_status_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_get_tracepoint_status (struct target_ops *self, struct breakpoint *arg1, struct uploaded_tp *arg2) { @@ -1057,6 +2776,20 @@ tdefault_get_tracepoint_status (struct target_ops *self, struct breakpoint *arg1 tcomplain (); } +static void +debug_get_tracepoint_status (struct target_ops *self, struct breakpoint *arg1, struct uploaded_tp *arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_tracepoint_status (...)\n", debug_target.to_shortname); + debug_target.to_get_tracepoint_status (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_tracepoint_status (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_breakpoint_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_uploaded_tp_p (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_trace_stop (struct target_ops *self) { @@ -1070,19 +2803,53 @@ tdefault_trace_stop (struct target_ops *self) tcomplain (); } +static void +debug_trace_stop (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_trace_stop (...)\n", debug_target.to_shortname); + debug_target.to_trace_stop (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_trace_stop (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int -delegate_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) +delegate_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) { self = self->beneath; return self->to_trace_find (self, arg1, arg2, arg3, arg4, arg5); } static int -tdefault_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) +tdefault_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) { return -1; } +static int +debug_trace_find (struct target_ops *self, enum trace_find_type arg1, int arg2, CORE_ADDR arg3, CORE_ADDR arg4, int *arg5) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_trace_find (...)\n", debug_target.to_shortname); + result = debug_target.to_trace_find (&debug_target, arg1, arg2, arg3, arg4, arg5); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_trace_find (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_trace_find_type (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg3); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg4); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int_p (arg5); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_get_trace_state_variable_value (struct target_ops *self, int arg1, LONGEST *arg2) { @@ -1096,6 +2863,24 @@ tdefault_get_trace_state_variable_value (struct target_ops *self, int arg1, LONG return 0; } +static int +debug_get_trace_state_variable_value (struct target_ops *self, int arg1, LONGEST *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_trace_state_variable_value (...)\n", debug_target.to_shortname); + result = debug_target.to_get_trace_state_variable_value (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_trace_state_variable_value (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_LONGEST_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_save_trace_data (struct target_ops *self, const char *arg1) { @@ -1109,6 +2894,22 @@ tdefault_save_trace_data (struct target_ops *self, const char *arg1) tcomplain (); } +static int +debug_save_trace_data (struct target_ops *self, const char *arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_save_trace_data (...)\n", debug_target.to_shortname); + result = debug_target.to_save_trace_data (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_save_trace_data (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_upload_tracepoints (struct target_ops *self, struct uploaded_tp **arg1) { @@ -1122,6 +2923,22 @@ tdefault_upload_tracepoints (struct target_ops *self, struct uploaded_tp **arg1) return 0; } +static int +debug_upload_tracepoints (struct target_ops *self, struct uploaded_tp **arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_upload_tracepoints (...)\n", debug_target.to_shortname); + result = debug_target.to_upload_tracepoints (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_upload_tracepoints (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_uploaded_tp_pp (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_upload_trace_state_variables (struct target_ops *self, struct uploaded_tsv **arg1) { @@ -1135,6 +2952,22 @@ tdefault_upload_trace_state_variables (struct target_ops *self, struct uploaded_ return 0; } +static int +debug_upload_trace_state_variables (struct target_ops *self, struct uploaded_tsv **arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_upload_trace_state_variables (...)\n", debug_target.to_shortname); + result = debug_target.to_upload_trace_state_variables (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_upload_trace_state_variables (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_uploaded_tsv_pp (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static LONGEST delegate_get_raw_trace_data (struct target_ops *self, gdb_byte *arg1, ULONGEST arg2, LONGEST arg3) { @@ -1148,6 +2981,26 @@ tdefault_get_raw_trace_data (struct target_ops *self, gdb_byte *arg1, ULONGEST a tcomplain (); } +static LONGEST +debug_get_raw_trace_data (struct target_ops *self, gdb_byte *arg1, ULONGEST arg2, LONGEST arg3) +{ + LONGEST result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_raw_trace_data (...)\n", debug_target.to_shortname); + result = debug_target.to_get_raw_trace_data (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_raw_trace_data (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_gdb_byte_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_LONGEST (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_LONGEST (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_get_min_fast_tracepoint_insn_len (struct target_ops *self) { @@ -1161,6 +3014,20 @@ tdefault_get_min_fast_tracepoint_insn_len (struct target_ops *self) return -1; } +static int +debug_get_min_fast_tracepoint_insn_len (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_min_fast_tracepoint_insn_len (...)\n", debug_target.to_shortname); + result = debug_target.to_get_min_fast_tracepoint_insn_len (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_min_fast_tracepoint_insn_len (", 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_set_disconnected_tracing (struct target_ops *self, int arg1) { @@ -1173,6 +3040,18 @@ tdefault_set_disconnected_tracing (struct target_ops *self, int arg1) { } +static void +debug_set_disconnected_tracing (struct target_ops *self, int arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_disconnected_tracing (...)\n", debug_target.to_shortname); + debug_target.to_set_disconnected_tracing (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_disconnected_tracing (", 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 void delegate_set_circular_trace_buffer (struct target_ops *self, int arg1) { @@ -1185,6 +3064,18 @@ tdefault_set_circular_trace_buffer (struct target_ops *self, int arg1) { } +static void +debug_set_circular_trace_buffer (struct target_ops *self, int arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_circular_trace_buffer (...)\n", debug_target.to_shortname); + debug_target.to_set_circular_trace_buffer (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_circular_trace_buffer (", 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 void delegate_set_trace_buffer_size (struct target_ops *self, LONGEST arg1) { @@ -1197,6 +3088,18 @@ tdefault_set_trace_buffer_size (struct target_ops *self, LONGEST arg1) { } +static void +debug_set_trace_buffer_size (struct target_ops *self, LONGEST arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_trace_buffer_size (...)\n", debug_target.to_shortname); + debug_target.to_set_trace_buffer_size (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_trace_buffer_size (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_LONGEST (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_set_trace_notes (struct target_ops *self, const char *arg1, const char *arg2, const char *arg3) { @@ -1210,6 +3113,26 @@ tdefault_set_trace_notes (struct target_ops *self, const char *arg1, const char return 0; } +static int +debug_set_trace_notes (struct target_ops *self, const char *arg1, const char *arg2, const char *arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_trace_notes (...)\n", debug_target.to_shortname); + result = debug_target.to_set_trace_notes (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_trace_notes (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_core_of_thread (struct target_ops *self, ptid_t arg1) { @@ -1223,6 +3146,22 @@ tdefault_core_of_thread (struct target_ops *self, ptid_t arg1) return -1; } +static int +debug_core_of_thread (struct target_ops *self, ptid_t arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_core_of_thread (...)\n", debug_target.to_shortname); + result = debug_target.to_core_of_thread (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_core_of_thread (", 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_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) { @@ -1231,9 +3170,23 @@ delegate_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR } static int -tdefault_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) -{ - tcomplain (); +debug_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_verify_memory (...)\n", debug_target.to_shortname); + result = debug_target.to_verify_memory (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_verify_memory (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_gdb_byte_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; } static int @@ -1249,6 +3202,24 @@ tdefault_get_tib_address (struct target_ops *self, ptid_t arg1, CORE_ADDR *arg2) tcomplain (); } +static int +debug_get_tib_address (struct target_ops *self, ptid_t arg1, CORE_ADDR *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_tib_address (...)\n", debug_target.to_shortname); + result = debug_target.to_get_tib_address (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_tib_address (", 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_CORE_ADDR_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_set_permissions (struct target_ops *self) { @@ -1261,6 +3232,16 @@ tdefault_set_permissions (struct target_ops *self) { } +static void +debug_set_permissions (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_permissions (...)\n", debug_target.to_shortname); + debug_target.to_set_permissions (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_permissions (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_static_tracepoint_marker_at (struct target_ops *self, CORE_ADDR arg1, struct static_tracepoint_marker *arg2) { @@ -1274,6 +3255,24 @@ tdefault_static_tracepoint_marker_at (struct target_ops *self, CORE_ADDR arg1, s return 0; } +static int +debug_static_tracepoint_marker_at (struct target_ops *self, CORE_ADDR arg1, struct static_tracepoint_marker *arg2) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_static_tracepoint_marker_at (...)\n", debug_target.to_shortname); + result = debug_target.to_static_tracepoint_marker_at (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_static_tracepoint_marker_at (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_CORE_ADDR (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_static_tracepoint_marker_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static VEC(static_tracepoint_marker_p) * delegate_static_tracepoint_markers_by_strid (struct target_ops *self, const char *arg1) { @@ -1287,6 +3286,22 @@ tdefault_static_tracepoint_markers_by_strid (struct target_ops *self, const char tcomplain (); } +static VEC(static_tracepoint_marker_p) * +debug_static_tracepoint_markers_by_strid (struct target_ops *self, const char *arg1) +{ + VEC(static_tracepoint_marker_p) * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_static_tracepoint_markers_by_strid (...)\n", debug_target.to_shortname); + result = debug_target.to_static_tracepoint_markers_by_strid (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_static_tracepoint_markers_by_strid (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_VEC_static_tracepoint_marker_p__p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static struct traceframe_info * delegate_traceframe_info (struct target_ops *self) { @@ -1300,6 +3315,20 @@ tdefault_traceframe_info (struct target_ops *self) tcomplain (); } +static struct traceframe_info * +debug_traceframe_info (struct target_ops *self) +{ + struct traceframe_info * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_traceframe_info (...)\n", debug_target.to_shortname); + result = debug_target.to_traceframe_info (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_traceframe_info (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_struct_traceframe_info_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_use_agent (struct target_ops *self, int arg1) { @@ -1313,6 +3342,22 @@ tdefault_use_agent (struct target_ops *self, int arg1) tcomplain (); } +static int +debug_use_agent (struct target_ops *self, int arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_use_agent (...)\n", debug_target.to_shortname); + result = debug_target.to_use_agent (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_use_agent (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static int delegate_can_use_agent (struct target_ops *self) { @@ -1327,31 +3372,79 @@ tdefault_can_use_agent (struct target_ops *self) } static int -delegate_supports_btrace (struct target_ops *self) +debug_can_use_agent (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_use_agent (...)\n", debug_target.to_shortname); + result = debug_target.to_can_use_agent (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_can_use_agent (", 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 int +delegate_supports_btrace (struct target_ops *self, enum btrace_format arg1) { self = self->beneath; - return self->to_supports_btrace (self); + return self->to_supports_btrace (self, arg1); } static int -tdefault_supports_btrace (struct target_ops *self) +tdefault_supports_btrace (struct target_ops *self, enum btrace_format arg1) { return 0; } +static int +debug_supports_btrace (struct target_ops *self, enum btrace_format arg1) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_btrace (...)\n", debug_target.to_shortname); + result = debug_target.to_supports_btrace (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_btrace (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_btrace_format (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_int (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static struct btrace_target_info * -delegate_enable_btrace (struct target_ops *self, ptid_t arg1) +delegate_enable_btrace (struct target_ops *self, ptid_t arg1, const struct btrace_config *arg2) { self = self->beneath; - return self->to_enable_btrace (self, arg1); + return self->to_enable_btrace (self, arg1, arg2); } static struct btrace_target_info * -tdefault_enable_btrace (struct target_ops *self, ptid_t arg1) +tdefault_enable_btrace (struct target_ops *self, ptid_t arg1, const struct btrace_config *arg2) { tcomplain (); } +static struct btrace_target_info * +debug_enable_btrace (struct target_ops *self, ptid_t arg1, const struct btrace_config *arg2) +{ + struct btrace_target_info * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_enable_btrace (...)\n", debug_target.to_shortname); + result = debug_target.to_enable_btrace (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_enable_btrace (", 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_const_struct_btrace_config_p (arg2); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_struct_btrace_target_info_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_disable_btrace (struct target_ops *self, struct btrace_target_info *arg1) { @@ -1365,6 +3458,18 @@ tdefault_disable_btrace (struct target_ops *self, struct btrace_target_info *arg tcomplain (); } +static void +debug_disable_btrace (struct target_ops *self, struct btrace_target_info *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_disable_btrace (...)\n", debug_target.to_shortname); + debug_target.to_disable_btrace (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_disable_btrace (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_btrace_target_info_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_teardown_btrace (struct target_ops *self, struct btrace_target_info *arg1) { @@ -1378,19 +3483,80 @@ tdefault_teardown_btrace (struct target_ops *self, struct btrace_target_info *ar tcomplain (); } -static enum btrace_error -delegate_read_btrace (struct target_ops *self, VEC (btrace_block_s) **arg1, struct btrace_target_info *arg2, enum btrace_read_type arg3) +static void +debug_teardown_btrace (struct target_ops *self, struct btrace_target_info *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_teardown_btrace (...)\n", debug_target.to_shortname); + debug_target.to_teardown_btrace (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_teardown_btrace (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_btrace_target_info_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static enum btrace_error +delegate_read_btrace (struct target_ops *self, struct btrace_data *arg1, struct btrace_target_info *arg2, enum btrace_read_type arg3) { self = self->beneath; return self->to_read_btrace (self, arg1, arg2, arg3); } -static enum btrace_error -tdefault_read_btrace (struct target_ops *self, VEC (btrace_block_s) **arg1, struct btrace_target_info *arg2, enum btrace_read_type arg3) +static enum btrace_error +tdefault_read_btrace (struct target_ops *self, struct btrace_data *arg1, struct btrace_target_info *arg2, enum btrace_read_type arg3) { tcomplain (); } +static enum btrace_error +debug_read_btrace (struct target_ops *self, struct btrace_data *arg1, struct btrace_target_info *arg2, enum btrace_read_type arg3) +{ + enum btrace_error result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_read_btrace (...)\n", debug_target.to_shortname); + result = debug_target.to_read_btrace (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_read_btrace (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_btrace_data_p (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_struct_btrace_target_info_p (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_enum_btrace_read_type (arg3); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_enum_btrace_error (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static const struct btrace_config * +delegate_btrace_conf (struct target_ops *self, const struct btrace_target_info *arg1) +{ + self = self->beneath; + return self->to_btrace_conf (self, arg1); +} + +static const struct btrace_config * +tdefault_btrace_conf (struct target_ops *self, const struct btrace_target_info *arg1) +{ + return NULL; +} + +static const struct btrace_config * +debug_btrace_conf (struct target_ops *self, const struct btrace_target_info *arg1) +{ + const struct btrace_config * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_btrace_conf (...)\n", debug_target.to_shortname); + result = debug_target.to_btrace_conf (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_btrace_conf (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_struct_btrace_target_info_p (arg1); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_const_struct_btrace_config_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static void delegate_stop_recording (struct target_ops *self) { @@ -1403,6 +3569,38 @@ tdefault_stop_recording (struct target_ops *self) { } +static void +debug_stop_recording (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_stop_recording (...)\n", debug_target.to_shortname); + debug_target.to_stop_recording (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_stop_recording (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static void +delegate_info_record (struct target_ops *self) +{ + self = self->beneath; + self->to_info_record (self); +} + +static void +tdefault_info_record (struct target_ops *self) +{ +} + +static void +debug_info_record (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_info_record (...)\n", debug_target.to_shortname); + debug_target.to_info_record (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_info_record (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_save_record (struct target_ops *self, const char *arg1) { @@ -1416,6 +3614,18 @@ tdefault_save_record (struct target_ops *self, const char *arg1) tcomplain (); } +static void +debug_save_record (struct target_ops *self, const char *arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_save_record (...)\n", debug_target.to_shortname); + debug_target.to_save_record (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_save_record (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_const_char_p (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_delete_record (struct target_ops *self) { @@ -1429,19 +3639,98 @@ tdefault_delete_record (struct target_ops *self) tcomplain (); } +static void +debug_delete_record (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_delete_record (...)\n", debug_target.to_shortname); + debug_target.to_delete_record (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_delete_record (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static int +delegate_record_is_replaying (struct target_ops *self, ptid_t arg1) +{ + self = self->beneath; + return self->to_record_is_replaying (self, arg1); +} + +static int +tdefault_record_is_replaying (struct target_ops *self, ptid_t arg1) +{ + return 0; +} + +static int +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, 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_is_replaying (struct target_ops *self) +delegate_record_will_replay (struct target_ops *self, ptid_t arg1, int arg2) { self = self->beneath; - return self->to_record_is_replaying (self); + return self->to_record_will_replay (self, arg1, arg2); } static int -tdefault_record_is_replaying (struct target_ops *self) +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) { @@ -1455,6 +3744,16 @@ tdefault_goto_record_begin (struct target_ops *self) tcomplain (); } +static void +debug_goto_record_begin (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_goto_record_begin (...)\n", debug_target.to_shortname); + debug_target.to_goto_record_begin (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_goto_record_begin (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_goto_record_end (struct target_ops *self) { @@ -1468,6 +3767,16 @@ tdefault_goto_record_end (struct target_ops *self) tcomplain (); } +static void +debug_goto_record_end (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_goto_record_end (...)\n", debug_target.to_shortname); + debug_target.to_goto_record_end (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_goto_record_end (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_goto_record (struct target_ops *self, ULONGEST arg1) { @@ -1481,6 +3790,18 @@ tdefault_goto_record (struct target_ops *self, ULONGEST arg1) tcomplain (); } +static void +debug_goto_record (struct target_ops *self, ULONGEST arg1) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_goto_record (...)\n", debug_target.to_shortname); + debug_target.to_goto_record (&debug_target, arg1); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_goto_record (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_insn_history (struct target_ops *self, int arg1, int arg2) { @@ -1494,6 +3815,20 @@ tdefault_insn_history (struct target_ops *self, int arg1, int arg2) tcomplain (); } +static void +debug_insn_history (struct target_ops *self, int arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history (...)\n", debug_target.to_shortname); + debug_target.to_insn_history (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insn_history (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3) { @@ -1507,6 +3842,22 @@ tdefault_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, in tcomplain (); } +static void +debug_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history_from (...)\n", debug_target.to_shortname); + debug_target.to_insn_history_from (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insn_history_from (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3) { @@ -1520,6 +3871,22 @@ tdefault_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST ar tcomplain (); } +static void +debug_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history_range (...)\n", debug_target.to_shortname); + debug_target.to_insn_history_range (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_insn_history_range (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_call_history (struct target_ops *self, int arg1, int arg2) { @@ -1533,6 +3900,20 @@ tdefault_call_history (struct target_ops *self, int arg1, int arg2) tcomplain (); } +static void +debug_call_history (struct target_ops *self, int arg1, int arg2) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_call_history (...)\n", debug_target.to_shortname); + debug_target.to_call_history (&debug_target, arg1, arg2); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_call_history (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_call_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3) { @@ -1546,6 +3927,22 @@ tdefault_call_history_from (struct target_ops *self, ULONGEST arg1, int arg2, in tcomplain (); } +static void +debug_call_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_call_history_from (...)\n", debug_target.to_shortname); + debug_target.to_call_history_from (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_call_history_from (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (")\n", gdb_stdlog); +} + static void delegate_call_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3) { @@ -1559,6 +3956,22 @@ tdefault_call_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST ar tcomplain (); } +static void +debug_call_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_call_history_range (...)\n", debug_target.to_shortname); + debug_target.to_call_history_range (&debug_target, arg1, arg2, arg3); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_call_history_range (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg1); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_ULONGEST (arg2); + fputs_unfiltered (", ", gdb_stdlog); + target_debug_print_int (arg3); + fputs_unfiltered (")\n", gdb_stdlog); +} + static int delegate_augmented_libraries_svr4_read (struct target_ops *self) { @@ -1572,6 +3985,20 @@ tdefault_augmented_libraries_svr4_read (struct target_ops *self) return 0; } +static int +debug_augmented_libraries_svr4_read (struct target_ops *self) +{ + int result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_augmented_libraries_svr4_read (...)\n", debug_target.to_shortname); + result = debug_target.to_augmented_libraries_svr4_read (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_augmented_libraries_svr4_read (", 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 const struct frame_unwind * delegate_get_unwinder (struct target_ops *self) { @@ -1585,6 +4012,20 @@ tdefault_get_unwinder (struct target_ops *self) return NULL; } +static const struct frame_unwind * +debug_get_unwinder (struct target_ops *self) +{ + const struct frame_unwind * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_unwinder (...)\n", debug_target.to_shortname); + result = debug_target.to_get_unwinder (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_unwinder (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_const_struct_frame_unwind_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + static const struct frame_unwind * delegate_get_tailcall_unwinder (struct target_ops *self) { @@ -1598,18 +4039,67 @@ tdefault_get_tailcall_unwinder (struct target_ops *self) return NULL; } -static CORE_ADDR -delegate_decr_pc_after_break (struct target_ops *self, struct gdbarch *arg1) +static const struct frame_unwind * +debug_get_tailcall_unwinder (struct target_ops *self) +{ + const struct frame_unwind * result; + fprintf_unfiltered (gdb_stdlog, "-> %s->to_get_tailcall_unwinder (...)\n", debug_target.to_shortname); + result = debug_target.to_get_tailcall_unwinder (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_get_tailcall_unwinder (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (") = ", gdb_stdlog); + target_debug_print_const_struct_frame_unwind_p (result); + fputs_unfiltered ("\n", gdb_stdlog); + return result; +} + +static void +delegate_prepare_to_generate_core (struct target_ops *self) +{ + self = self->beneath; + self->to_prepare_to_generate_core (self); +} + +static void +tdefault_prepare_to_generate_core (struct target_ops *self) +{ +} + +static void +debug_prepare_to_generate_core (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_prepare_to_generate_core (...)\n", debug_target.to_shortname); + debug_target.to_prepare_to_generate_core (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_prepare_to_generate_core (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); +} + +static void +delegate_done_generating_core (struct target_ops *self) { self = self->beneath; - return self->to_decr_pc_after_break (self, arg1); + self->to_done_generating_core (self); +} + +static void +tdefault_done_generating_core (struct target_ops *self) +{ +} + +static void +debug_done_generating_core (struct target_ops *self) +{ + fprintf_unfiltered (gdb_stdlog, "-> %s->to_done_generating_core (...)\n", debug_target.to_shortname); + debug_target.to_done_generating_core (&debug_target); + fprintf_unfiltered (gdb_stdlog, "<- %s->to_done_generating_core (", debug_target.to_shortname); + target_debug_print_struct_target_ops_p (&debug_target); + fputs_unfiltered (")\n", gdb_stdlog); } static void install_delegators (struct target_ops *ops) { - if (ops->to_attach == NULL) - ops->to_attach = delegate_attach; if (ops->to_post_attach == NULL) ops->to_post_attach = delegate_post_attach; if (ops->to_detach == NULL) @@ -1632,6 +4122,14 @@ install_delegators (struct target_ops *ops) ops->to_insert_breakpoint = delegate_insert_breakpoint; if (ops->to_remove_breakpoint == NULL) ops->to_remove_breakpoint = delegate_remove_breakpoint; + if (ops->to_stopped_by_sw_breakpoint == NULL) + ops->to_stopped_by_sw_breakpoint = delegate_stopped_by_sw_breakpoint; + if (ops->to_supports_stopped_by_sw_breakpoint == NULL) + ops->to_supports_stopped_by_sw_breakpoint = delegate_supports_stopped_by_sw_breakpoint; + if (ops->to_stopped_by_hw_breakpoint == NULL) + ops->to_stopped_by_hw_breakpoint = delegate_stopped_by_hw_breakpoint; + if (ops->to_supports_stopped_by_hw_breakpoint == NULL) + ops->to_supports_stopped_by_hw_breakpoint = delegate_supports_stopped_by_hw_breakpoint; if (ops->to_can_use_hw_breakpoint == NULL) ops->to_can_use_hw_breakpoint = delegate_can_use_hw_breakpoint; if (ops->to_ranged_break_num_registers == NULL) @@ -1660,6 +4158,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) @@ -1668,8 +4168,6 @@ install_delegators (struct target_ops *ops) ops->to_terminal_ours_for_output = delegate_terminal_ours_for_output; if (ops->to_terminal_ours == NULL) ops->to_terminal_ours = delegate_terminal_ours; - if (ops->to_terminal_save_ours == NULL) - ops->to_terminal_save_ours = delegate_terminal_save_ours; if (ops->to_terminal_info == NULL) ops->to_terminal_info = delegate_terminal_info; if (ops->to_kill == NULL) @@ -1692,6 +4190,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) @@ -1706,8 +4206,8 @@ install_delegators (struct target_ops *ops) ops->to_program_signals = delegate_program_signals; if (ops->to_thread_alive == NULL) ops->to_thread_alive = delegate_thread_alive; - if (ops->to_find_new_threads == NULL) - ops->to_find_new_threads = delegate_find_new_threads; + if (ops->to_update_thread_list == NULL) + ops->to_update_thread_list = delegate_update_thread_list; if (ops->to_pid_to_str == NULL) ops->to_pid_to_str = delegate_pid_to_str; if (ops->to_extra_thread_info == NULL) @@ -1716,6 +4216,10 @@ install_delegators (struct target_ops *ops) ops->to_thread_name = delegate_thread_name; if (ops->to_stop == NULL) ops->to_stop = delegate_stop; + if (ops->to_interrupt == NULL) + ops->to_interrupt = delegate_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) @@ -1730,6 +4234,12 @@ 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) + ops->to_always_non_stop_p = delegate_always_non_stop_p; if (ops->to_find_memory_regions == NULL) ops->to_find_memory_regions = delegate_find_memory_regions; if (ops->to_make_corefile_notes == NULL) @@ -1738,8 +4248,12 @@ install_delegators (struct target_ops *ops) ops->to_get_bookmark = delegate_get_bookmark; if (ops->to_goto_bookmark == NULL) ops->to_goto_bookmark = delegate_goto_bookmark; + if (ops->to_get_thread_local_address == NULL) + 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) @@ -1770,6 +4284,10 @@ install_delegators (struct target_ops *ops) ops->to_can_run_breakpoint_commands = delegate_can_run_breakpoint_commands; if (ops->to_thread_architecture == NULL) ops->to_thread_architecture = delegate_thread_architecture; + if (ops->to_thread_address_space == NULL) + ops->to_thread_address_space = delegate_thread_address_space; + if (ops->to_filesystem_is_local == NULL) + ops->to_filesystem_is_local = delegate_filesystem_is_local; if (ops->to_trace_init == NULL) ops->to_trace_init = delegate_trace_init; if (ops->to_download_tracepoint == NULL) @@ -1842,14 +4360,22 @@ install_delegators (struct target_ops *ops) ops->to_teardown_btrace = delegate_teardown_btrace; if (ops->to_read_btrace == NULL) ops->to_read_btrace = delegate_read_btrace; + if (ops->to_btrace_conf == NULL) + ops->to_btrace_conf = delegate_btrace_conf; if (ops->to_stop_recording == NULL) ops->to_stop_recording = delegate_stop_recording; + if (ops->to_info_record == NULL) + ops->to_info_record = delegate_info_record; if (ops->to_save_record == NULL) ops->to_save_record = delegate_save_record; if (ops->to_delete_record == NULL) 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) @@ -1874,25 +4400,30 @@ install_delegators (struct target_ops *ops) ops->to_get_unwinder = delegate_get_unwinder; if (ops->to_get_tailcall_unwinder == NULL) ops->to_get_tailcall_unwinder = delegate_get_tailcall_unwinder; - if (ops->to_decr_pc_after_break == NULL) - ops->to_decr_pc_after_break = delegate_decr_pc_after_break; + if (ops->to_prepare_to_generate_core == NULL) + ops->to_prepare_to_generate_core = delegate_prepare_to_generate_core; + if (ops->to_done_generating_core == NULL) + ops->to_done_generating_core = delegate_done_generating_core; } static void install_dummy_methods (struct target_ops *ops) { - ops->to_attach = find_default_attach; ops->to_post_attach = tdefault_post_attach; ops->to_detach = tdefault_detach; ops->to_disconnect = tdefault_disconnect; ops->to_resume = tdefault_resume; - ops->to_wait = tdefault_wait; + 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; ops->to_files_info = tdefault_files_info; ops->to_insert_breakpoint = memory_insert_breakpoint; ops->to_remove_breakpoint = memory_remove_breakpoint; + ops->to_stopped_by_sw_breakpoint = tdefault_stopped_by_sw_breakpoint; + ops->to_supports_stopped_by_sw_breakpoint = tdefault_supports_stopped_by_sw_breakpoint; + ops->to_stopped_by_hw_breakpoint = tdefault_stopped_by_hw_breakpoint; + ops->to_supports_stopped_by_hw_breakpoint = tdefault_supports_stopped_by_hw_breakpoint; ops->to_can_use_hw_breakpoint = tdefault_can_use_hw_breakpoint; ops->to_ranged_break_num_registers = tdefault_ranged_break_num_registers; ops->to_insert_hw_breakpoint = tdefault_insert_hw_breakpoint; @@ -1907,11 +4438,11 @@ 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; ops->to_terminal_ours = tdefault_terminal_ours; - ops->to_terminal_save_ours = tdefault_terminal_save_ours; ops->to_terminal_info = default_terminal_info; ops->to_kill = tdefault_kill; ops->to_load = tdefault_load; @@ -1923,6 +4454,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; @@ -1930,23 +4462,30 @@ install_dummy_methods (struct target_ops *ops) ops->to_pass_signals = tdefault_pass_signals; ops->to_program_signals = tdefault_program_signals; ops->to_thread_alive = tdefault_thread_alive; - ops->to_find_new_threads = tdefault_find_new_threads; + ops->to_update_thread_list = tdefault_update_thread_list; ops->to_pid_to_str = default_pid_to_str; ops->to_extra_thread_info = tdefault_extra_thread_info; ops->to_thread_name = tdefault_thread_name; ops->to_stop = tdefault_stop; + ops->to_interrupt = tdefault_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; ops->to_get_section_table = tdefault_get_section_table; - ops->to_can_async_p = find_default_can_async_p; - ops->to_is_async_p = find_default_is_async_p; + 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; ops->to_make_corefile_notes = dummy_make_corefile_notes; ops->to_get_bookmark = tdefault_get_bookmark; 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; @@ -1962,6 +4501,8 @@ install_dummy_methods (struct target_ops *ops) ops->to_supports_evaluation_of_breakpoint_conditions = tdefault_supports_evaluation_of_breakpoint_conditions; ops->to_can_run_breakpoint_commands = tdefault_can_run_breakpoint_commands; ops->to_thread_architecture = default_thread_architecture; + ops->to_thread_address_space = default_thread_address_space; + ops->to_filesystem_is_local = tdefault_filesystem_is_local; ops->to_trace_init = tdefault_trace_init; ops->to_download_tracepoint = tdefault_download_tracepoint; ops->to_can_download_tracepoint = tdefault_can_download_tracepoint; @@ -1985,7 +4526,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_set_trace_buffer_size = tdefault_set_trace_buffer_size; ops->to_set_trace_notes = tdefault_set_trace_notes; ops->to_core_of_thread = tdefault_core_of_thread; - ops->to_verify_memory = tdefault_verify_memory; + ops->to_verify_memory = default_verify_memory; ops->to_get_tib_address = tdefault_get_tib_address; ops->to_set_permissions = tdefault_set_permissions; ops->to_static_tracepoint_marker_at = tdefault_static_tracepoint_marker_at; @@ -1998,10 +4539,14 @@ install_dummy_methods (struct target_ops *ops) ops->to_disable_btrace = tdefault_disable_btrace; ops->to_teardown_btrace = tdefault_teardown_btrace; ops->to_read_btrace = tdefault_read_btrace; + ops->to_btrace_conf = tdefault_btrace_conf; ops->to_stop_recording = tdefault_stop_recording; + ops->to_info_record = tdefault_info_record; 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; @@ -2014,5 +4559,163 @@ install_dummy_methods (struct target_ops *ops) ops->to_augmented_libraries_svr4_read = tdefault_augmented_libraries_svr4_read; ops->to_get_unwinder = tdefault_get_unwinder; ops->to_get_tailcall_unwinder = tdefault_get_tailcall_unwinder; - ops->to_decr_pc_after_break = default_target_decr_pc_after_break; + ops->to_prepare_to_generate_core = tdefault_prepare_to_generate_core; + ops->to_done_generating_core = tdefault_done_generating_core; +} + +static void +init_debug_target (struct target_ops *ops) +{ + ops->to_post_attach = debug_post_attach; + ops->to_detach = debug_detach; + ops->to_disconnect = debug_disconnect; + ops->to_resume = debug_resume; + ops->to_wait = debug_wait; + ops->to_fetch_registers = debug_fetch_registers; + ops->to_store_registers = debug_store_registers; + ops->to_prepare_to_store = debug_prepare_to_store; + ops->to_files_info = debug_files_info; + ops->to_insert_breakpoint = debug_insert_breakpoint; + ops->to_remove_breakpoint = debug_remove_breakpoint; + ops->to_stopped_by_sw_breakpoint = debug_stopped_by_sw_breakpoint; + ops->to_supports_stopped_by_sw_breakpoint = debug_supports_stopped_by_sw_breakpoint; + ops->to_stopped_by_hw_breakpoint = debug_stopped_by_hw_breakpoint; + ops->to_supports_stopped_by_hw_breakpoint = debug_supports_stopped_by_hw_breakpoint; + ops->to_can_use_hw_breakpoint = debug_can_use_hw_breakpoint; + ops->to_ranged_break_num_registers = debug_ranged_break_num_registers; + ops->to_insert_hw_breakpoint = debug_insert_hw_breakpoint; + ops->to_remove_hw_breakpoint = debug_remove_hw_breakpoint; + ops->to_remove_watchpoint = debug_remove_watchpoint; + ops->to_insert_watchpoint = debug_insert_watchpoint; + ops->to_insert_mask_watchpoint = debug_insert_mask_watchpoint; + ops->to_remove_mask_watchpoint = debug_remove_mask_watchpoint; + ops->to_stopped_by_watchpoint = debug_stopped_by_watchpoint; + ops->to_stopped_data_address = debug_stopped_data_address; + ops->to_watchpoint_addr_within_range = debug_watchpoint_addr_within_range; + 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; + ops->to_terminal_ours = debug_terminal_ours; + ops->to_terminal_info = debug_terminal_info; + ops->to_kill = debug_kill; + ops->to_load = debug_load; + ops->to_post_startup_inferior = debug_post_startup_inferior; + ops->to_insert_fork_catchpoint = debug_insert_fork_catchpoint; + ops->to_remove_fork_catchpoint = debug_remove_fork_catchpoint; + ops->to_insert_vfork_catchpoint = debug_insert_vfork_catchpoint; + ops->to_remove_vfork_catchpoint = debug_remove_vfork_catchpoint; + 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; + ops->to_can_run = debug_can_run; + ops->to_pass_signals = debug_pass_signals; + ops->to_program_signals = debug_program_signals; + ops->to_thread_alive = debug_thread_alive; + ops->to_update_thread_list = debug_update_thread_list; + ops->to_pid_to_str = debug_pid_to_str; + ops->to_extra_thread_info = debug_extra_thread_info; + ops->to_thread_name = debug_thread_name; + ops->to_stop = debug_stop; + ops->to_interrupt = debug_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; + ops->to_get_section_table = debug_get_section_table; + 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; + ops->to_make_corefile_notes = debug_make_corefile_notes; + ops->to_get_bookmark = debug_get_bookmark; + 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; + ops->to_read_description = debug_read_description; + ops->to_get_ada_task_ptid = debug_get_ada_task_ptid; + ops->to_auxv_parse = debug_auxv_parse; + ops->to_search_memory = debug_search_memory; + ops->to_can_execute_reverse = debug_can_execute_reverse; + ops->to_execution_direction = debug_execution_direction; + ops->to_supports_multi_process = debug_supports_multi_process; + ops->to_supports_enable_disable_tracepoint = debug_supports_enable_disable_tracepoint; + ops->to_supports_string_tracing = debug_supports_string_tracing; + ops->to_supports_evaluation_of_breakpoint_conditions = debug_supports_evaluation_of_breakpoint_conditions; + ops->to_can_run_breakpoint_commands = debug_can_run_breakpoint_commands; + ops->to_thread_architecture = debug_thread_architecture; + ops->to_thread_address_space = debug_thread_address_space; + ops->to_filesystem_is_local = debug_filesystem_is_local; + ops->to_trace_init = debug_trace_init; + ops->to_download_tracepoint = debug_download_tracepoint; + ops->to_can_download_tracepoint = debug_can_download_tracepoint; + ops->to_download_trace_state_variable = debug_download_trace_state_variable; + ops->to_enable_tracepoint = debug_enable_tracepoint; + ops->to_disable_tracepoint = debug_disable_tracepoint; + ops->to_trace_set_readonly_regions = debug_trace_set_readonly_regions; + ops->to_trace_start = debug_trace_start; + ops->to_get_trace_status = debug_get_trace_status; + ops->to_get_tracepoint_status = debug_get_tracepoint_status; + ops->to_trace_stop = debug_trace_stop; + ops->to_trace_find = debug_trace_find; + ops->to_get_trace_state_variable_value = debug_get_trace_state_variable_value; + ops->to_save_trace_data = debug_save_trace_data; + ops->to_upload_tracepoints = debug_upload_tracepoints; + ops->to_upload_trace_state_variables = debug_upload_trace_state_variables; + ops->to_get_raw_trace_data = debug_get_raw_trace_data; + ops->to_get_min_fast_tracepoint_insn_len = debug_get_min_fast_tracepoint_insn_len; + ops->to_set_disconnected_tracing = debug_set_disconnected_tracing; + ops->to_set_circular_trace_buffer = debug_set_circular_trace_buffer; + ops->to_set_trace_buffer_size = debug_set_trace_buffer_size; + ops->to_set_trace_notes = debug_set_trace_notes; + ops->to_core_of_thread = debug_core_of_thread; + ops->to_verify_memory = debug_verify_memory; + ops->to_get_tib_address = debug_get_tib_address; + ops->to_set_permissions = debug_set_permissions; + ops->to_static_tracepoint_marker_at = debug_static_tracepoint_marker_at; + ops->to_static_tracepoint_markers_by_strid = debug_static_tracepoint_markers_by_strid; + ops->to_traceframe_info = debug_traceframe_info; + ops->to_use_agent = debug_use_agent; + ops->to_can_use_agent = debug_can_use_agent; + ops->to_supports_btrace = debug_supports_btrace; + ops->to_enable_btrace = debug_enable_btrace; + ops->to_disable_btrace = debug_disable_btrace; + ops->to_teardown_btrace = debug_teardown_btrace; + ops->to_read_btrace = debug_read_btrace; + ops->to_btrace_conf = debug_btrace_conf; + ops->to_stop_recording = debug_stop_recording; + ops->to_info_record = debug_info_record; + 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; + ops->to_insn_history = debug_insn_history; + ops->to_insn_history_from = debug_insn_history_from; + ops->to_insn_history_range = debug_insn_history_range; + ops->to_call_history = debug_call_history; + ops->to_call_history_from = debug_call_history_from; + ops->to_call_history_range = debug_call_history_range; + ops->to_augmented_libraries_svr4_read = debug_augmented_libraries_svr4_read; + ops->to_get_unwinder = debug_get_unwinder; + ops->to_get_tailcall_unwinder = debug_get_tailcall_unwinder; + ops->to_prepare_to_generate_core = debug_prepare_to_generate_core; + ops->to_done_generating_core = debug_done_generating_core; }