convert to_get_trace_status
[deliverable/binutils-gdb.git] / gdb / target.c
index 7d3d587ca2095464abc8c16c7a42de5905ff2a09..4d9fa4ce03dd28a0b2fb5b23cca8d6a2a6c1d062 100644 (file)
@@ -55,14 +55,17 @@ static int default_watchpoint_addr_within_range (struct target_ops *,
 static int default_region_ok_for_hw_watchpoint (struct target_ops *,
                                                CORE_ADDR, int);
 
+static void default_rcmd (struct target_ops *, char *, struct ui_file *);
+
+static ptid_t default_get_ada_task_ptid (struct target_ops *self,
+                                        long lwp, long tid);
+
 static void tcomplain (void) ATTRIBUTE_NORETURN;
 
 static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
 
 static int return_zero (void);
 
-static int return_one (void);
-
 static int return_minus_one (void);
 
 static void *return_null (void);
@@ -78,10 +81,20 @@ static target_xfer_partial_ftype default_xfer_partial;
 static struct gdbarch *default_thread_architecture (struct target_ops *ops,
                                                    ptid_t ptid);
 
+static int dummy_find_memory_regions (struct target_ops *self,
+                                     find_memory_region_ftype ignore1,
+                                     void *ignore2);
+
+static char *dummy_make_corefile_notes (struct target_ops *self,
+                                       bfd *ignore1, int *ignore2);
+
 static int find_default_can_async_p (struct target_ops *ignore);
 
 static int find_default_is_async_p (struct target_ops *ignore);
 
+static enum exec_direction_kind default_execution_direction
+    (struct target_ops *self);
+
 #include "target-delegates.c"
 
 static void init_dummy_target (void);
@@ -589,7 +602,7 @@ update_current_target (void)
       /* Do not inherit to_open.  */
       /* Do not inherit to_close.  */
       /* Do not inherit to_attach.  */
-      INHERIT (to_post_attach, t);
+      /* Do not inherit to_post_attach.  */
       INHERIT (to_attach_no_wait, t);
       /* Do not inherit to_detach.  */
       /* Do not inherit to_disconnect.  */
@@ -597,46 +610,46 @@ update_current_target (void)
       /* Do not inherit to_wait.  */
       /* Do not inherit to_fetch_registers.  */
       /* Do not inherit to_store_registers.  */
-      INHERIT (to_prepare_to_store, t);
+      /* Do not inherit to_prepare_to_store.  */
       INHERIT (deprecated_xfer_memory, t);
-      INHERIT (to_files_info, t);
+      /* Do not inherit to_files_info.  */
       /* Do not inherit to_insert_breakpoint.  */
       /* Do not inherit to_remove_breakpoint.  */
-      INHERIT (to_can_use_hw_breakpoint, t);
-      INHERIT (to_insert_hw_breakpoint, t);
-      INHERIT (to_remove_hw_breakpoint, t);
+      /* Do not inherit to_can_use_hw_breakpoint.  */
+      /* Do not inherit to_insert_hw_breakpoint.  */
+      /* Do not inherit to_remove_hw_breakpoint.  */
       /* Do not inherit to_ranged_break_num_registers.  */
-      INHERIT (to_insert_watchpoint, t);
-      INHERIT (to_remove_watchpoint, t);
+      /* Do not inherit to_insert_watchpoint.  */
+      /* Do not inherit to_remove_watchpoint.  */
       /* Do not inherit to_insert_mask_watchpoint.  */
       /* Do not inherit to_remove_mask_watchpoint.  */
       /* Do not inherit to_stopped_data_address.  */
       INHERIT (to_have_steppable_watchpoint, t);
       INHERIT (to_have_continuable_watchpoint, t);
       /* Do not inherit to_stopped_by_watchpoint.  */
-      INHERIT (to_watchpoint_addr_within_range, t);
-      INHERIT (to_region_ok_for_hw_watchpoint, t);
-      INHERIT (to_can_accel_watchpoint_condition, t);
+      /* Do not inherit to_watchpoint_addr_within_range.  */
+      /* Do not inherit to_region_ok_for_hw_watchpoint.  */
+      /* Do not inherit to_can_accel_watchpoint_condition.  */
       /* Do not inherit to_masked_watch_num_registers.  */
-      INHERIT (to_terminal_init, t);
-      INHERIT (to_terminal_inferior, t);
-      INHERIT (to_terminal_ours_for_output, t);
-      INHERIT (to_terminal_ours, t);
-      INHERIT (to_terminal_save_ours, t);
-      INHERIT (to_terminal_info, t);
+      /* Do not inherit to_terminal_init.  */
+      /* Do not inherit to_terminal_inferior.  */
+      /* Do not inherit to_terminal_ours_for_output.  */
+      /* Do not inherit to_terminal_ours.  */
+      /* Do not inherit to_terminal_save_ours.  */
+      /* Do not inherit to_terminal_info.  */
       /* Do not inherit to_kill.  */
-      INHERIT (to_load, t);
+      /* Do not inherit to_load.  */
       /* Do no inherit to_create_inferior.  */
-      INHERIT (to_post_startup_inferior, t);
-      INHERIT (to_insert_fork_catchpoint, t);
-      INHERIT (to_remove_fork_catchpoint, t);
-      INHERIT (to_insert_vfork_catchpoint, t);
-      INHERIT (to_remove_vfork_catchpoint, t);
+      /* Do not inherit to_post_startup_inferior.  */
+      /* Do not inherit to_insert_fork_catchpoint.  */
+      /* Do not inherit to_remove_fork_catchpoint.  */
+      /* Do not inherit to_insert_vfork_catchpoint.  */
+      /* Do not inherit to_remove_vfork_catchpoint.  */
       /* Do not inherit to_follow_fork.  */
-      INHERIT (to_insert_exec_catchpoint, t);
-      INHERIT (to_remove_exec_catchpoint, t);
-      INHERIT (to_set_syscall_catchpoint, t);
-      INHERIT (to_has_exited, t);
+      /* Do not inherit to_insert_exec_catchpoint.  */
+      /* Do not inherit to_remove_exec_catchpoint.  */
+      /* Do not inherit to_set_syscall_catchpoint.  */
+      /* Do not inherit to_has_exited.  */
       /* Do not inherit to_mourn_inferior.  */
       INHERIT (to_can_run, t);
       /* Do not inherit to_pass_signals.  */
@@ -644,13 +657,13 @@ update_current_target (void)
       /* Do not inherit to_thread_alive.  */
       /* Do not inherit to_find_new_threads.  */
       /* Do not inherit to_pid_to_str.  */
-      INHERIT (to_extra_thread_info, t);
-      INHERIT (to_thread_name, t);
+      /* Do not inherit to_extra_thread_info.  */
+      /* Do not inherit to_thread_name.  */
       INHERIT (to_stop, t);
       /* Do not inherit to_xfer_partial.  */
-      INHERIT (to_rcmd, t);
-      INHERIT (to_pid_to_exec_file, t);
-      INHERIT (to_log_command, t);
+      /* Do not inherit to_rcmd.  */
+      /* Do not inherit to_pid_to_exec_file.  */
+      /* Do not inherit to_log_command.  */
       INHERIT (to_stratum, t);
       /* Do not inherit to_has_all_memory.  */
       /* Do not inherit to_has_memory.  */
@@ -661,29 +674,29 @@ update_current_target (void)
       /* Do not inherit to_can_async_p.  */
       /* Do not inherit to_is_async_p.  */
       /* Do not inherit to_async.  */
-      INHERIT (to_find_memory_regions, t);
-      INHERIT (to_make_corefile_notes, t);
-      INHERIT (to_get_bookmark, t);
-      INHERIT (to_goto_bookmark, t);
+      /* Do not inherit to_find_memory_regions.  */
+      /* Do not inherit to_make_corefile_notes.  */
+      /* Do not inherit to_get_bookmark.  */
+      /* Do not inherit to_goto_bookmark.  */
       /* Do not inherit to_get_thread_local_address.  */
-      INHERIT (to_can_execute_reverse, t);
-      INHERIT (to_execution_direction, t);
-      INHERIT (to_thread_architecture, t);
+      /* Do not inherit to_can_execute_reverse.  */
+      /* Do not inherit to_execution_direction.  */
+      /* Do not inherit to_thread_architecture.  */
       /* Do not inherit to_read_description.  */
-      INHERIT (to_get_ada_task_ptid, t);
+      /* Do not inherit to_get_ada_task_ptid.  */
       /* Do not inherit to_search_memory.  */
-      INHERIT (to_supports_multi_process, t);
-      INHERIT (to_supports_enable_disable_tracepoint, t);
-      INHERIT (to_supports_string_tracing, t);
-      INHERIT (to_trace_init, t);
-      INHERIT (to_download_tracepoint, t);
-      INHERIT (to_can_download_tracepoint, t);
-      INHERIT (to_download_trace_state_variable, t);
-      INHERIT (to_enable_tracepoint, t);
-      INHERIT (to_disable_tracepoint, t);
-      INHERIT (to_trace_set_readonly_regions, t);
-      INHERIT (to_trace_start, t);
-      INHERIT (to_get_trace_status, t);
+      /* Do not inherit to_supports_multi_process.  */
+      /* Do not inherit to_supports_enable_disable_tracepoint.  */
+      /* Do not inherit to_supports_string_tracing.  */
+      /* Do not inherit to_trace_init.  */
+      /* Do not inherit to_download_tracepoint.  */
+      /* Do not inherit to_can_download_tracepoint.  */
+      /* Do not inherit to_download_trace_state_variable.  */
+      /* Do not inherit to_enable_tracepoint.  */
+      /* Do not inherit to_disable_tracepoint.  */
+      /* Do not inherit to_trace_set_readonly_regions.  */
+      /* Do not inherit to_trace_start.  */
+      /* Do not inherit to_get_trace_status.  */
       INHERIT (to_get_tracepoint_status, t);
       INHERIT (to_trace_stop, t);
       INHERIT (to_trace_find, t);
@@ -728,153 +741,17 @@ update_current_target (void)
   de_fault (to_close,
            (void (*) (struct target_ops *))
            target_ignore);
-  de_fault (to_post_attach,
-           (void (*) (struct target_ops *, int))
-           target_ignore);
-  de_fault (to_prepare_to_store,
-           (void (*) (struct target_ops *, struct regcache *))
-           noprocess);
   de_fault (deprecated_xfer_memory,
            (int (*) (CORE_ADDR, gdb_byte *, int, int,
                      struct mem_attrib *, struct target_ops *))
            nomemory);
-  de_fault (to_files_info,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_can_use_hw_breakpoint,
-           (int (*) (struct target_ops *, int, int, int))
-           return_zero);
-  de_fault (to_insert_hw_breakpoint,
-           (int (*) (struct target_ops *, struct gdbarch *,
-                     struct bp_target_info *))
-           return_minus_one);
-  de_fault (to_remove_hw_breakpoint,
-           (int (*) (struct target_ops *, struct gdbarch *,
-                     struct bp_target_info *))
-           return_minus_one);
-  de_fault (to_insert_watchpoint,
-           (int (*) (struct target_ops *, CORE_ADDR, int, int,
-                     struct expression *))
-           return_minus_one);
-  de_fault (to_remove_watchpoint,
-           (int (*) (struct target_ops *, CORE_ADDR, int, int,
-                     struct expression *))
-           return_minus_one);
-  de_fault (to_watchpoint_addr_within_range,
-           default_watchpoint_addr_within_range);
-  de_fault (to_region_ok_for_hw_watchpoint,
-           default_region_ok_for_hw_watchpoint);
-  de_fault (to_can_accel_watchpoint_condition,
-            (int (*) (struct target_ops *, CORE_ADDR, int, int,
-                     struct expression *))
-            return_zero);
-  de_fault (to_terminal_init,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_terminal_inferior,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_terminal_ours_for_output,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_terminal_ours,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_terminal_save_ours,
-           (void (*) (struct target_ops *))
-           target_ignore);
-  de_fault (to_terminal_info,
-           default_terminal_info);
-  de_fault (to_load,
-           (void (*) (struct target_ops *, char *, int))
-           tcomplain);
-  de_fault (to_post_startup_inferior,
-           (void (*) (struct target_ops *, ptid_t))
-           target_ignore);
-  de_fault (to_insert_fork_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_remove_fork_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_insert_vfork_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_remove_vfork_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_insert_exec_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_remove_exec_catchpoint,
-           (int (*) (struct target_ops *, int))
-           return_one);
-  de_fault (to_set_syscall_catchpoint,
-           (int (*) (struct target_ops *, int, int, int, int, int *))
-           return_one);
-  de_fault (to_has_exited,
-           (int (*) (struct target_ops *, int, int, int *))
-           return_zero);
   de_fault (to_can_run,
            (int (*) (struct target_ops *))
            return_zero);
-  de_fault (to_extra_thread_info,
-           (char *(*) (struct target_ops *, struct thread_info *))
-           return_null);
-  de_fault (to_thread_name,
-           (char *(*) (struct target_ops *, struct thread_info *))
-           return_null);
   de_fault (to_stop,
            (void (*) (struct target_ops *, ptid_t))
            target_ignore);
-  de_fault (to_rcmd,
-           (void (*) (struct target_ops *, char *, struct ui_file *))
-           tcomplain);
-  de_fault (to_pid_to_exec_file,
-           (char *(*) (struct target_ops *, int))
-           return_null);
-  de_fault (to_thread_architecture,
-           default_thread_architecture);
   current_target.to_read_description = NULL;
-  de_fault (to_get_ada_task_ptid,
-            (ptid_t (*) (struct target_ops *, long, long))
-            default_get_ada_task_ptid);
-  de_fault (to_supports_multi_process,
-           (int (*) (struct target_ops *))
-           return_zero);
-  de_fault (to_supports_enable_disable_tracepoint,
-           (int (*) (struct target_ops *))
-           return_zero);
-  de_fault (to_supports_string_tracing,
-           (int (*) (struct target_ops *))
-           return_zero);
-  de_fault (to_trace_init,
-           (void (*) (struct target_ops *))
-           tcomplain);
-  de_fault (to_download_tracepoint,
-           (void (*) (struct target_ops *, struct bp_location *))
-           tcomplain);
-  de_fault (to_can_download_tracepoint,
-           (int (*) (struct target_ops *))
-           return_zero);
-  de_fault (to_download_trace_state_variable,
-           (void (*) (struct target_ops *, struct trace_state_variable *))
-           tcomplain);
-  de_fault (to_enable_tracepoint,
-           (void (*) (struct target_ops *, struct bp_location *))
-           tcomplain);
-  de_fault (to_disable_tracepoint,
-           (void (*) (struct target_ops *, struct bp_location *))
-           tcomplain);
-  de_fault (to_trace_set_readonly_regions,
-           (void (*) (struct target_ops *))
-           tcomplain);
-  de_fault (to_trace_start,
-           (void (*) (struct target_ops *))
-           tcomplain);
-  de_fault (to_get_trace_status,
-           (int (*) (struct target_ops *, struct trace_status *))
-           return_minus_one);
   de_fault (to_get_tracepoint_status,
            (void (*) (struct target_ops *, struct breakpoint *,
                       struct uploaded_tp *))
@@ -947,9 +824,8 @@ update_current_target (void)
            (int (*) (struct target_ops *))
            return_zero);
   de_fault (to_augmented_libraries_svr4_read,
-           (int (*) (void))
+           (int (*) (struct target_ops *))
            return_zero);
-  de_fault (to_execution_direction, default_execution_direction);
 
 #undef de_fault
 
@@ -2690,19 +2566,10 @@ target_detach (const char *args, int from_tty)
 
   prepare_for_detach ();
 
-  for (t = current_target.beneath; t != NULL; t = t->beneath)
-    {
-      if (t->to_detach != NULL)
-       {
-         t->to_detach (t, args, from_tty);
-         if (targetdebug)
-           fprintf_unfiltered (gdb_stdlog, "target_detach (%s, %d)\n",
-                               args, from_tty);
-         return;
-       }
-    }
-
-  internal_error (__FILE__, __LINE__, _("could not find a target to detach"));
+  current_target.to_detach (&current_target, args, from_tty);
+  if (targetdebug)
+    fprintf_unfiltered (gdb_stdlog, "target_detach (%s, %d)\n",
+                       args, from_tty);
 }
 
 void
@@ -2771,15 +2638,7 @@ target_pid_to_str (ptid_t ptid)
 char *
 target_thread_name (struct thread_info *info)
 {
-  struct target_ops *t;
-
-  for (t = current_target.beneath; t != NULL; t = t->beneath)
-    {
-      if (t->to_thread_name != NULL)
-       return (*t->to_thread_name) (t, info);
-    }
-
-  return NULL;
+  return current_target.to_thread_name (&current_target, info);
 }
 
 void
@@ -3677,12 +3536,6 @@ return_zero (void)
   return 0;
 }
 
-static int
-return_one (void)
-{
-  return 1;
-}
-
 static int
 return_minus_one (void)
 {
@@ -3791,21 +3644,6 @@ dummy_make_corefile_notes (struct target_ops *self,
   return NULL;
 }
 
-/* Error-catcher for target_get_bookmark.  */
-static gdb_byte *
-dummy_get_bookmark (struct target_ops *self, char *ignore1, int ignore2)
-{
-  tcomplain ();
-  return NULL;
-}
-
-/* Error-catcher for target_goto_bookmark.  */
-static void
-dummy_goto_bookmark (struct target_ops *self, gdb_byte *ignore, int from_tty)
-{
-  tcomplain ();
-}
-
 /* Set up the handful of non-empty slots needed by the dummy target
    vector.  */
 
@@ -3815,19 +3653,12 @@ init_dummy_target (void)
   dummy_target.to_shortname = "None";
   dummy_target.to_longname = "None";
   dummy_target.to_doc = "";
-  dummy_target.to_attach = find_default_attach;
-  dummy_target.to_detach = 
-    (void (*)(struct target_ops *, const char *, int))target_ignore;
   dummy_target.to_create_inferior = find_default_create_inferior;
   dummy_target.to_supports_non_stop = find_default_supports_non_stop;
   dummy_target.to_supports_disable_randomization
     = find_default_supports_disable_randomization;
   dummy_target.to_pid_to_str = dummy_pid_to_str;
   dummy_target.to_stratum = dummy_stratum;
-  dummy_target.to_find_memory_regions = dummy_find_memory_regions;
-  dummy_target.to_make_corefile_notes = dummy_make_corefile_notes;
-  dummy_target.to_get_bookmark = dummy_get_bookmark;
-  dummy_target.to_goto_bookmark = dummy_goto_bookmark;
   dummy_target.to_has_all_memory = (int (*) (struct target_ops *)) return_zero;
   dummy_target.to_has_memory = (int (*) (struct target_ops *)) return_zero;
   dummy_target.to_has_stack = (int (*) (struct target_ops *)) return_zero;
@@ -3864,22 +3695,10 @@ target_close (struct target_ops *targ)
 void
 target_attach (char *args, int from_tty)
 {
-  struct target_ops *t;
-
-  for (t = current_target.beneath; t != NULL; t = t->beneath)
-    {
-      if (t->to_attach != NULL)        
-       {
-         t->to_attach (t, args, from_tty);
-         if (targetdebug)
-           fprintf_unfiltered (gdb_stdlog, "target_attach (%s, %d)\n",
-                               args, from_tty);
-         return;
-       }
-    }
-
-  internal_error (__FILE__, __LINE__,
-                 _("could not find a target to attach"));
+  current_target.to_attach (&current_target, args, from_tty);
+  if (targetdebug)
+    fprintf_unfiltered (gdb_stdlog, "target_attach (%s, %d)\n",
+                       args, from_tty);
 }
 
 int
@@ -4266,7 +4085,7 @@ target_stop_recording (void)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_stop_recording != NULL)
       {
-       t->to_stop_recording ();
+       t->to_stop_recording (t);
        return;
       }
 
@@ -4283,7 +4102,7 @@ target_info_record (void)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_info_record != NULL)
       {
-       t->to_info_record ();
+       t->to_info_record (t);
        return;
       }
 
@@ -4300,7 +4119,7 @@ target_save_record (const char *filename)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_save_record != NULL)
       {
-       t->to_save_record (filename);
+       t->to_save_record (t, filename);
        return;
       }
 
@@ -4331,7 +4150,7 @@ target_delete_record (void)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_delete_record != NULL)
       {
-       t->to_delete_record ();
+       t->to_delete_record (t);
        return;
       }
 
@@ -4347,7 +4166,7 @@ target_record_is_replaying (void)
 
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_record_is_replaying != NULL)
-       return t->to_record_is_replaying ();
+       return t->to_record_is_replaying (t);
 
   return 0;
 }
@@ -4362,7 +4181,7 @@ target_goto_record_begin (void)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_goto_record_begin != NULL)
       {
-       t->to_goto_record_begin ();
+       t->to_goto_record_begin (t);
        return;
       }
 
@@ -4379,7 +4198,7 @@ target_goto_record_end (void)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_goto_record_end != NULL)
       {
-       t->to_goto_record_end ();
+       t->to_goto_record_end (t);
        return;
       }
 
@@ -4396,7 +4215,7 @@ target_goto_record (ULONGEST insn)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_goto_record != NULL)
       {
-       t->to_goto_record (insn);
+       t->to_goto_record (t, insn);
        return;
       }
 
@@ -4413,7 +4232,7 @@ target_insn_history (int size, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_insn_history != NULL)
       {
-       t->to_insn_history (size, flags);
+       t->to_insn_history (t, size, flags);
        return;
       }
 
@@ -4430,7 +4249,7 @@ target_insn_history_from (ULONGEST from, int size, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_insn_history_from != NULL)
       {
-       t->to_insn_history_from (from, size, flags);
+       t->to_insn_history_from (t, from, size, flags);
        return;
       }
 
@@ -4447,7 +4266,7 @@ target_insn_history_range (ULONGEST begin, ULONGEST end, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_insn_history_range != NULL)
       {
-       t->to_insn_history_range (begin, end, flags);
+       t->to_insn_history_range (t, begin, end, flags);
        return;
       }
 
@@ -4464,7 +4283,7 @@ target_call_history (int size, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_call_history != NULL)
       {
-       t->to_call_history (size, flags);
+       t->to_call_history (t, size, flags);
        return;
       }
 
@@ -4481,7 +4300,7 @@ target_call_history_from (ULONGEST begin, int size, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_call_history_from != NULL)
       {
-       t->to_call_history_from (begin, size, flags);
+       t->to_call_history_from (t, begin, size, flags);
        return;
       }
 
@@ -4498,7 +4317,7 @@ target_call_history_range (ULONGEST begin, ULONGEST end, int flags)
   for (t = current_target.beneath; t != NULL; t = t->beneath)
     if (t->to_call_history_range != NULL)
       {
-       t->to_call_history_range (begin, end, flags);
+       t->to_call_history_range (t, begin, end, flags);
        return;
       }
 
@@ -5077,17 +4896,16 @@ static char targ_desc[] =
 stack of targets currently in use (including the exec-file,\n\
 core-file, and process, if any), as well as the symbol file name.";
 
+static void
+default_rcmd (struct target_ops *self, char *command, struct ui_file *output)
+{
+  error (_("\"monitor\" command not supported by this target."));
+}
+
 static void
 do_monitor_command (char *cmd,
                 int from_tty)
 {
-  if ((current_target.to_rcmd
-       == (void (*) (struct target_ops *, char *, struct ui_file *)) tcomplain)
-      || (current_target.to_rcmd == debug_to_rcmd
-         && (debug_target.to_rcmd
-             == (void (*) (struct target_ops *,
-                           char *, struct ui_file *)) tcomplain)))
-    error (_("\"monitor\" command not supported by this target."));
   target_rcmd (cmd, gdb_stdtarg);
 }
 
This page took 0.033638 seconds and 4 git commands to generate.