Remove target_has_execution macro
authorTom Tromey <tom@tromey.com>
Tue, 29 Sep 2020 01:38:25 +0000 (19:38 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 29 Sep 2020 01:52:21 +0000 (19:52 -0600)
This removes the object-like macro target_has_execution, replacing it
with a function call.  target_has_execution_current is also now
handled by this function.

gdb/ChangeLog
2020-09-28  Tom Tromey  <tom@tromey.com>

* inferior.h (class inferior) <has_execution>: Update.
* windows-tdep.c (windows_solib_create_inferior_hook): Update.
* valops.c (find_function_in_inferior)
(value_allocate_space_in_inferior): Update.
* top.c (kill_or_detach): Update.
* target.c (target_preopen, set_target_permissions): Update.
(target_has_execution_current): Remove.
* sparc64-tdep.c (adi_examine_command, adi_assign_command):
Update.
* solib.c (update_solib_list, reload_shared_libraries): Update.
* solib-svr4.c (svr4_solib_create_inferior_hook): Update.
* solib-dsbt.c (enable_break): Update.
* score-tdep.c (score7_fetch_inst): Update.
* rs6000-nat.c (rs6000_nat_target::xfer_shared_libraries):
Update.
* remote.c (remote_target::start_remote)
(remote_target::remote_check_symbols, remote_target::open_1)
(remote_target::remote_detach_1, remote_target::verify_memory)
(remote_target::xfer_partial, remote_target::read_description)
(remote_target::get_min_fast_tracepoint_insn_len): Update.
* record-full.c (record_full_open_1): Update.
* record-btrace.c (record_btrace_target_open): Update.
* objc-lang.c (lookup_objc_class, lookup_child_selector)
(value_nsstring): Update.
* linux-thread-db.c (add_thread_db_info)
(thread_db_find_new_threads_silently, check_thread_db_callback)
(try_thread_db_load_1, record_thread): Update.
* linux-tdep.c (linux_info_proc, linux_vsyscall_range_raw):
Update.
* linux-fork.c (checkpoint_command): Update.
* infrun.c (set_non_stop, set_observer_mode)
(check_multi_target_resumption, for_each_just_stopped_thread)
(maybe_remove_breakpoints, normal_stop)
(class infcall_suspend_state): Update.
* infcmd.c (ERROR_NO_INFERIOR, kill_if_already_running)
(info_program_command, attach_command): Update.
* infcall.c (call_function_by_hand_dummy): Update.
* inf-loop.c (inferior_event_handler): Update.
* gcore.c (gcore_command, derive_heap_segment): Update.
* exec.c (exec_file_command): Update.
* eval.c (evaluate_subexp): Update.
* compile/compile.c (compile_to_object): Update.
* cli/cli-dump.c (restore_command): Update.
* breakpoint.c (update_watchpoint)
(update_inserted_breakpoint_locations)
(insert_breakpoint_locations, get_bpstat_thread): Update.
* target.h (target_has_execution): Remove macro.
(target_has_execution_current): Don't declare.
(target_has_execution): Rename from target_has_execution_1.  Add
argument default.

30 files changed:
gdb/ChangeLog
gdb/breakpoint.c
gdb/cli/cli-dump.c
gdb/compile/compile.c
gdb/eval.c
gdb/exec.c
gdb/gcore.c
gdb/inf-loop.c
gdb/infcall.c
gdb/infcmd.c
gdb/inferior.h
gdb/infrun.c
gdb/linux-fork.c
gdb/linux-tdep.c
gdb/linux-thread-db.c
gdb/objc-lang.c
gdb/record-btrace.c
gdb/record-full.c
gdb/remote.c
gdb/rs6000-nat.c
gdb/score-tdep.c
gdb/solib-dsbt.c
gdb/solib-svr4.c
gdb/solib.c
gdb/sparc64-tdep.c
gdb/target.c
gdb/target.h
gdb/top.c
gdb/valops.c
gdb/windows-tdep.c

index dcce8212ca09e7ed95658680ed28ef78583a8086..2c29fff35ed3a3e58299a3dc9611014b3116247e 100644 (file)
@@ -1,3 +1,56 @@
+2020-09-28  Tom Tromey  <tom@tromey.com>
+
+       * inferior.h (class inferior) <has_execution>: Update.
+       * windows-tdep.c (windows_solib_create_inferior_hook): Update.
+       * valops.c (find_function_in_inferior)
+       (value_allocate_space_in_inferior): Update.
+       * top.c (kill_or_detach): Update.
+       * target.c (target_preopen, set_target_permissions): Update.
+       (target_has_execution_current): Remove.
+       * sparc64-tdep.c (adi_examine_command, adi_assign_command):
+       Update.
+       * solib.c (update_solib_list, reload_shared_libraries): Update.
+       * solib-svr4.c (svr4_solib_create_inferior_hook): Update.
+       * solib-dsbt.c (enable_break): Update.
+       * score-tdep.c (score7_fetch_inst): Update.
+       * rs6000-nat.c (rs6000_nat_target::xfer_shared_libraries):
+       Update.
+       * remote.c (remote_target::start_remote)
+       (remote_target::remote_check_symbols, remote_target::open_1)
+       (remote_target::remote_detach_1, remote_target::verify_memory)
+       (remote_target::xfer_partial, remote_target::read_description)
+       (remote_target::get_min_fast_tracepoint_insn_len): Update.
+       * record-full.c (record_full_open_1): Update.
+       * record-btrace.c (record_btrace_target_open): Update.
+       * objc-lang.c (lookup_objc_class, lookup_child_selector)
+       (value_nsstring): Update.
+       * linux-thread-db.c (add_thread_db_info)
+       (thread_db_find_new_threads_silently, check_thread_db_callback)
+       (try_thread_db_load_1, record_thread): Update.
+       * linux-tdep.c (linux_info_proc, linux_vsyscall_range_raw):
+       Update.
+       * linux-fork.c (checkpoint_command): Update.
+       * infrun.c (set_non_stop, set_observer_mode)
+       (check_multi_target_resumption, for_each_just_stopped_thread)
+       (maybe_remove_breakpoints, normal_stop)
+       (class infcall_suspend_state): Update.
+       * infcmd.c (ERROR_NO_INFERIOR, kill_if_already_running)
+       (info_program_command, attach_command): Update.
+       * infcall.c (call_function_by_hand_dummy): Update.
+       * inf-loop.c (inferior_event_handler): Update.
+       * gcore.c (gcore_command, derive_heap_segment): Update.
+       * exec.c (exec_file_command): Update.
+       * eval.c (evaluate_subexp): Update.
+       * compile/compile.c (compile_to_object): Update.
+       * cli/cli-dump.c (restore_command): Update.
+       * breakpoint.c (update_watchpoint)
+       (update_inserted_breakpoint_locations)
+       (insert_breakpoint_locations, get_bpstat_thread): Update.
+       * target.h (target_has_execution): Remove macro.
+       (target_has_execution_current): Don't declare.
+       (target_has_execution): Rename from target_has_execution_1.  Add
+       argument default.
+
 2020-09-28  Tom Tromey  <tom@tromey.com>
 
        * mi/mi-main.c (exec_reverse_continue)
 2020-09-28  Tom Tromey  <tom@tromey.com>
 
        * mi/mi-main.c (exec_reverse_continue)
index e0712b2ea9d2da9378e77f7f0720072c82031e86..296b08c0afc7ec4554812696f74031e2d845770b 100644 (file)
@@ -1768,7 +1768,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
      don't try to insert watchpoint.  We don't automatically delete
      such watchpoint, though, since failure to parse expression
      is different from out-of-scope watchpoint.  */
      don't try to insert watchpoint.  We don't automatically delete
      such watchpoint, though, since failure to parse expression
      is different from out-of-scope watchpoint.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     {
       /* Without execution, memory can't change.  No use to try and
         set watchpoint locations.  The watchpoint will be reset when
     {
       /* Without execution, memory can't change.  No use to try and
         set watchpoint locations.  The watchpoint will be reset when
@@ -2878,7 +2878,7 @@ update_inserted_breakpoint_locations (void)
         if we aren't attached to any process yet, we should still
         insert breakpoints.  */
       if (!gdbarch_has_global_breakpoints (target_gdbarch ())
         if we aren't attached to any process yet, we should still
         insert breakpoints.  */
       if (!gdbarch_has_global_breakpoints (target_gdbarch ())
-         && (inferior_ptid == null_ptid || !target_has_execution))
+         && (inferior_ptid == null_ptid || !target_has_execution ()))
        continue;
 
       val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks,
        continue;
 
       val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks,
@@ -2934,7 +2934,7 @@ insert_breakpoint_locations (void)
         if we aren't attached to any process yet, we should still
         insert breakpoints.  */
       if (!gdbarch_has_global_breakpoints (target_gdbarch ())
         if we aren't attached to any process yet, we should still
         insert breakpoints.  */
       if (!gdbarch_has_global_breakpoints (target_gdbarch ())
-         && (inferior_ptid == null_ptid || !target_has_execution))
+         && (inferior_ptid == null_ptid || !target_has_execution ()))
        continue;
 
       val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks,
        continue;
 
       val = insert_bp_location (bl, &tmp_error_stream, &disabled_breaks,
@@ -4410,7 +4410,7 @@ bpstat_do_actions_1 (bpstat *bsp)
 static thread_info *
 get_bpstat_thread ()
 {
 static thread_info *
 get_bpstat_thread ()
 {
-  if (inferior_ptid == null_ptid || !target_has_execution)
+  if (inferior_ptid == null_ptid || !target_has_execution ())
     return NULL;
 
   thread_info *tp = inferior_thread ();
     return NULL;
 
   thread_info *tp = inferior_thread ();
index c8d6797ddc1fc92e663b999e8d92a4fae8721d56..428e644ba990e9da6d6e14259638be96e1b62836 100644 (file)
@@ -497,7 +497,7 @@ restore_command (const char *args, int from_tty)
 {
   int binary_flag = 0;
 
 {
   int binary_flag = 0;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     noprocess ();
 
   CORE_ADDR load_offset = 0;
     noprocess ();
 
   CORE_ADDR load_offset = 0;
index 82ffb8e5e98507f054ef50a1d67851ae142bd22b..3e45e762624f577ac404a7f41adbac4700f97493 100644 (file)
@@ -641,7 +641,7 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
   struct gdbarch *gdbarch = get_current_arch ();
   std::string triplet_rx;
 
   struct gdbarch *gdbarch = get_current_arch ();
   std::string triplet_rx;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("The program must be running for the compile command to "\
             "work."));
 
     error (_("The program must be running for the compile command to "\
             "work."));
 
index 2a1fd98caed60ae4e2c34fbd142cff536b615309..e0cfb79368f6d1d63e8d58d3c5605cf4e309c4cd 100644 (file)
@@ -68,7 +68,7 @@ evaluate_subexp (struct type *expect_type, struct expression *exp,
   struct value *retval;
 
   gdb::optional<enable_thread_stack_temporaries> stack_temporaries;
   struct value *retval;
 
   gdb::optional<enable_thread_stack_temporaries> stack_temporaries;
-  if (*pos == 0 && target_has_execution
+  if (*pos == 0 && target_has_execution ()
       && exp->language_defn->la_language == language_cplus
       && !thread_stack_temporaries_enabled_p (inferior_thread ()))
     stack_temporaries.emplace (inferior_thread ());
       && exp->language_defn->la_language == language_cplus
       && !thread_stack_temporaries_enabled_p (inferior_thread ()))
     stack_temporaries.emplace (inferior_thread ());
index 14cc6af7de0726674d02f976776d08bfcc488ed9..251e24dd26b667f6b43297695451dd02c5329923 100644 (file)
@@ -545,7 +545,7 @@ exec_file_attach (const char *filename, int from_tty)
 static void
 exec_file_command (const char *args, int from_tty)
 {
 static void
 exec_file_command (const char *args, int from_tty)
 {
-  if (from_tty && target_has_execution
+  if (from_tty && target_has_execution ()
       && !query (_("A program is being debugged already.\n"
                   "Are you sure you want to change the file? ")))
     error (_("File not changed."));
       && !query (_("A program is being debugged already.\n"
                   "Are you sure you want to change the file? ")))
     error (_("File not changed."));
index ebaae88b0816b738380bb38307e63f69e5f5d8ec..db82eaac3dd8b3c06bc1a3770f65f5ddbc590ff5 100644 (file)
@@ -129,7 +129,7 @@ gcore_command (const char *args, int from_tty)
   gdb::unique_xmalloc_ptr<char> corefilename;
 
   /* No use generating a corefile without a target process.  */
   gdb::unique_xmalloc_ptr<char> corefilename;
 
   /* No use generating a corefile without a target process.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     noprocess ();
 
   if (args && *args)
     noprocess ();
 
   if (args && *args)
@@ -321,7 +321,7 @@ derive_heap_segment (bfd *abfd, bfd_vma *bottom, bfd_vma *top)
 
   /* This function depends on being able to call a function in the
      inferior.  */
 
   /* This function depends on being able to call a function in the
      inferior.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return 0;
 
   /* The following code assumes that the link map is arranged as
     return 0;
 
   /* The following code assumes that the link map is arranged as
index cf746b8588cc231e5467f29164bc5ee785032681..68c94d9e942c22a7ccf72135231d2906e1ad70cd 100644 (file)
@@ -48,7 +48,7 @@ inferior_event_handler (enum inferior_event_type event_type)
          /* Unregister the inferior from the event loop.  This is done
             so that when the inferior is not running we don't get
             distracted by spurious inferior output.  */
          /* Unregister the inferior from the event loop.  This is done
             so that when the inferior is not running we don't get
             distracted by spurious inferior output.  */
-         if (target_has_execution && target_can_async_p ())
+         if (target_has_execution () && target_can_async_p ())
            target_async (0);
        }
 
            target_async (0);
        }
 
index 8df7523f1576881e3f42fb98f06f97a72a258fb9..399b1724ea22ddd23b1ccabc51dd58870dbea5c8 100644 (file)
@@ -786,7 +786,7 @@ call_function_by_hand_dummy (struct value *function,
     error (_("Cannot call functions in the program: "
             "may-call-functions is off."));
 
     error (_("Cannot call functions in the program: "
             "may-call-functions is off."));
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     noprocess ();
 
   if (get_traceframe_number () >= 0)
     noprocess ();
 
   if (get_traceframe_number () >= 0)
@@ -1353,7 +1353,7 @@ When the function is done executing, GDB will silently stop."),
   /* If the program has exited, or we stopped at a different thread,
      exit and inform the user.  */
 
   /* If the program has exited, or we stopped at a different thread,
      exit and inform the user.  */
 
-  if (! target_has_execution)
+  if (! target_has_execution ())
     {
       const char *name = get_function_name (funaddr,
                                            name_buf, sizeof (name_buf));
     {
       const char *name = get_function_name (funaddr,
                                            name_buf, sizeof (name_buf));
index 88fca1b20a1a1bd31b702fecb61ef55d58abc042..81ce36dafe2690fae1d299d1cba821c147f4e014 100644 (file)
@@ -64,7 +64,7 @@ static void until_next_command (int);
 static void step_1 (int, int, const char *);
 
 #define ERROR_NO_INFERIOR \
 static void step_1 (int, int, const char *);
 
 #define ERROR_NO_INFERIOR \
-   if (!target_has_execution) error (_("The program is not being run."));
+   if (!target_has_execution ()) error (_("The program is not being run."));
 
 /* Scratch area where string containing arguments to give to the
    program will be stored by 'set args'.  As soon as anything is
 
 /* Scratch area where string containing arguments to give to the
    program will be stored by 'set args'.  As soon as anything is
@@ -358,7 +358,7 @@ post_create_inferior (struct target_ops *target, int from_tty)
 static void
 kill_if_already_running (int from_tty)
 {
 static void
 kill_if_already_running (int from_tty)
 {
-  if (inferior_ptid != null_ptid && target_has_execution)
+  if (inferior_ptid != null_ptid && target_has_execution ())
     {
       /* Bail out before killing the program if we will not be able to
         restart it.  */
     {
       /* Bail out before killing the program if we will not be able to
         restart it.  */
@@ -1861,7 +1861,7 @@ info_program_command (const char *args, int from_tty)
   ptid_t ptid;
   process_stratum_target *proc_target;
 
   ptid_t ptid;
   process_stratum_target *proc_target;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     {
       printf_filtered (_("The program being debugged is not being run.\n"));
       return;
     {
       printf_filtered (_("The program being debugged is not being run.\n"));
       return;
@@ -2569,7 +2569,7 @@ attach_command (const char *args, int from_tty)
     /* Don't complain if all processes share the same symbol
        space.  */
     ;
     /* Don't complain if all processes share the same symbol
        space.  */
     ;
-  else if (target_has_execution)
+  else if (target_has_execution ())
     {
       if (query (_("A program is being debugged already.  Kill it? ")))
        target_kill ();
     {
       if (query (_("A program is being debugged already.  Kill it? ")))
        target_kill ();
index 606cece6c0b33a017d9cfb759a88a8cf007309fb..70edf21b34bc859f123b6546ce602daa8f856a05 100644 (file)
@@ -377,7 +377,7 @@ public:
   { return m_target_stack.at (stratum); }
 
   bool has_execution ()
   { return m_target_stack.at (stratum); }
 
   bool has_execution ()
-  { return target_has_execution_1 (this); }
+  { return target_has_execution (this); }
 
   /* Pointer to next inferior in singly-linked list of inferiors.  */
   struct inferior *next = NULL;
 
   /* Pointer to next inferior in singly-linked list of inferiors.  */
   struct inferior *next = NULL;
index e4bd692760c93b1c636e922bd4825da54305ce05..6ff362cb6dfefb535994909bc9042e36bd1bdcaa 100644 (file)
@@ -218,7 +218,7 @@ static void
 set_non_stop (const char *args, int from_tty,
              struct cmd_list_element *c)
 {
 set_non_stop (const char *args, int from_tty,
              struct cmd_list_element *c)
 {
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       non_stop_1 = non_stop;
       error (_("Cannot change this setting while the inferior is running."));
     {
       non_stop_1 = non_stop;
       error (_("Cannot change this setting while the inferior is running."));
@@ -247,7 +247,7 @@ static void
 set_observer_mode (const char *args, int from_tty,
                   struct cmd_list_element *c)
 {
 set_observer_mode (const char *args, int from_tty,
                   struct cmd_list_element *c)
 {
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       observer_mode_1 = observer_mode;
       error (_("Cannot change this setting while the inferior is running."));
     {
       observer_mode_1 = observer_mode;
       error (_("Cannot change this setting while the inferior is running."));
@@ -2884,7 +2884,7 @@ check_multi_target_resumption (process_stratum_target *resume_target)
        {
          switch_to_inferior_no_thread (inf);
 
        {
          switch_to_inferior_no_thread (inf);
 
-         if (!target_has_execution)
+         if (!target_has_execution ())
            continue;
 
          process_stratum_target *proc_target
            continue;
 
          process_stratum_target *proc_target
@@ -3308,7 +3308,7 @@ typedef void (*for_each_just_stopped_thread_callback_func)
 static void
 for_each_just_stopped_thread (for_each_just_stopped_thread_callback_func func)
 {
 static void
 for_each_just_stopped_thread (for_each_just_stopped_thread_callback_func func)
 {
-  if (!target_has_execution || inferior_ptid == null_ptid)
+  if (!target_has_execution () || inferior_ptid == null_ptid)
     return;
 
   if (target_is_non_stop_p ())
     return;
 
   if (target_is_non_stop_p ())
@@ -8146,7 +8146,7 @@ print_stop_event (struct ui_out *uiout, bool displays)
 void
 maybe_remove_breakpoints (void)
 {
 void
 maybe_remove_breakpoints (void)
 {
-  if (!breakpoints_should_be_inserted_now () && target_has_execution)
+  if (!breakpoints_should_be_inserted_now () && target_has_execution ())
     {
       if (remove_breakpoints ())
        {
     {
       if (remove_breakpoints ())
        {
@@ -8302,7 +8302,7 @@ normal_stop (void)
      informing of a stop.  */
   if (!non_stop
       && previous_inferior_ptid != inferior_ptid
      informing of a stop.  */
   if (!non_stop
       && previous_inferior_ptid != inferior_ptid
-      && target_has_execution
+      && target_has_execution ()
       && last.kind != TARGET_WAITKIND_SIGNALLED
       && last.kind != TARGET_WAITKIND_EXITED
       && last.kind != TARGET_WAITKIND_NO_RESUMED)
       && last.kind != TARGET_WAITKIND_SIGNALLED
       && last.kind != TARGET_WAITKIND_EXITED
       && last.kind != TARGET_WAITKIND_NO_RESUMED)
@@ -8407,7 +8407,7 @@ normal_stop (void)
 
   annotate_stopped ();
 
 
   annotate_stopped ();
 
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       if (last.kind != TARGET_WAITKIND_SIGNALLED
          && last.kind != TARGET_WAITKIND_EXITED
     {
       if (last.kind != TARGET_WAITKIND_SIGNALLED
          && last.kind != TARGET_WAITKIND_EXITED
@@ -8923,7 +8923,7 @@ public:
 
     /* The inferior can be gone if the user types "print exit(0)"
        (and perhaps other times).  */
 
     /* The inferior can be gone if the user types "print exit(0)"
        (and perhaps other times).  */
-    if (target_has_execution)
+    if (target_has_execution ())
       /* NB: The register write goes through to the target.  */
       regcache->restore (registers ());
   }
       /* NB: The register write goes through to the target.  */
       regcache->restore (registers ());
   }
index e232d9c263a2df58d7f0352e0a53ff65b312a265..b3d8fc1a1746e5fc7ea3a3ff7ee177f3b1b0c3c3 100644 (file)
@@ -645,7 +645,7 @@ checkpoint_command (const char *args, int from_tty)
   struct fork_info *fp;
   pid_t retpid;
 
   struct fork_info *fp;
   pid_t retpid;
 
-  if (!target_has_execution) 
+  if (!target_has_execution ()
     error (_("The program is not being run."));
 
   /* Ensure that the inferior is not multithreaded.  */
     error (_("The program is not being run."));
 
   /* Ensure that the inferior is not multithreaded.  */
index a0d954a620626d695007dc3607225305ed3128bc..439f583a8027ce6c28568196da47a6963042e4e6 100644 (file)
@@ -772,7 +772,7 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
     }
   else
     {
     }
   else
     {
-      if (!target_has_execution)
+      if (!target_has_execution ())
        error (_("No current process: you must name one."));
       if (current_inferior ()->fake_pid_p)
        error (_("Can't determine the current process's PID: you must name one."));
        error (_("No current process: you must name one."));
       if (current_inferior ()->fake_pid_p)
        error (_("Can't determine the current process's PID: you must name one."));
@@ -2317,7 +2317,7 @@ linux_vsyscall_range_raw (struct gdbarch *gdbarch, struct mem_range *range)
   /* It doesn't make sense to access the host's /proc when debugging a
      core file.  Instead, look for the PT_LOAD segment that matches
      the vDSO.  */
   /* It doesn't make sense to access the host's /proc when debugging a
      core file.  Instead, look for the PT_LOAD segment that matches
      the vDSO.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     {
       long phdrs_size;
       int num_phdrs, i;
     {
       long phdrs_size;
       int num_phdrs, i;
index 64b96c0ad80dd6765dbf41ad34c8c5fd608ba550..878e7bd183f600c4e5235f1efae6a24e08b8165f 100644 (file)
@@ -237,7 +237,7 @@ add_thread_db_info (void *handle)
 
   /* The workaround works by reading from /proc/pid/status, so it is
      disabled for core files.  */
 
   /* The workaround works by reading from /proc/pid/status, so it is
      disabled for core files.  */
-  if (target_has_execution)
+  if (target_has_execution ())
     info->need_stale_parent_threads_check = 1;
 
   info->next = thread_db_list;
     info->need_stale_parent_threads_check = 1;
 
   info->next = thread_db_list;
@@ -531,7 +531,7 @@ thread_db_find_new_threads_silently (thread_info *stopped)
         corrupted.  For core files it does not apply, no 'later enumeration'
         is possible.  */
 
         corrupted.  For core files it does not apply, no 'later enumeration'
         is possible.  */
 
-      if (!target_has_execution || !inferior_has_bug ("nptl_version", 2, 7))
+      if (!target_has_execution () || !inferior_has_bug ("nptl_version", 2, 7))
        {
          exception_fprintf (gdb_stderr, except,
                             _("Warning: couldn't activate thread debugging "
        {
          exception_fprintf (gdb_stderr, except,
                             _("Warning: couldn't activate thread debugging "
@@ -658,7 +658,7 @@ check_thread_db_callback (const td_thrhandle_t *th, void *arg)
   memset (&th2, 23, sizeof (td_thrhandle_t));
   CALL_UNCHECKED (td_ta_map_lwp2thr, th->th_ta_p, ti.ti_lid, &th2);
 
   memset (&th2, 23, sizeof (td_thrhandle_t));
   CALL_UNCHECKED (td_ta_map_lwp2thr, th->th_ta_p, ti.ti_lid, &th2);
 
-  if (tdb_testinfo->last_result == TD_ERR && !target_has_execution)
+  if (tdb_testinfo->last_result == TD_ERR && !target_has_execution ())
     {
       /* Some platforms require execution for td_ta_map_lwp2thr.  */
       LOG (_("; can't map_lwp2thr"));
     {
       /* Some platforms require execution for td_ta_map_lwp2thr.  */
       LOG (_("; can't map_lwp2thr"));
@@ -884,7 +884,7 @@ try_thread_db_load_1 (struct thread_db_info *info)
 
      td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that
      currently on core targets, as it uses ptrace directly.  */
 
      td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that
      currently on core targets, as it uses ptrace directly.  */
-  if (target_has_execution
+  if (target_has_execution ()
       && linux_proc_task_list_dir_exists (inferior_ptid.pid ()))
     info->td_ta_thr_iter_p = NULL;
   else
       && linux_proc_task_list_dir_exists (inferior_ptid.pid ()))
     info->td_ta_thr_iter_p = NULL;
   else
@@ -1358,7 +1358,7 @@ record_thread (struct thread_db_info *info,
   else
     tp->priv.reset (priv);
 
   else
     tp->priv.reset (priv);
 
-  if (target_has_execution)
+  if (target_has_execution ())
     check_thread_signals ();
 
   return tp;
     check_thread_signals ();
 
   return tp;
index 9eaaf96a2a572710a27b4df3d1812a5361ee8ced..009b7a7331eebdce5fa27d002fad80277af0654c 100644 (file)
@@ -33,7 +33,7 @@
 #include "value.h"
 #include "symfile.h"
 #include "objfiles.h"
 #include "value.h"
 #include "symfile.h"
 #include "objfiles.h"
-#include "target.h"            /* for target_has_execution */
+#include "target.h"
 #include "gdbcore.h"
 #include "gdbcmd.h"
 #include "frame.h"
 #include "gdbcore.h"
 #include "gdbcmd.h"
 #include "frame.h"
@@ -112,7 +112,7 @@ lookup_objc_class (struct gdbarch *gdbarch, const char *classname)
   struct type *char_type = builtin_type (gdbarch)->builtin_char;
   struct value * function, *classval;
 
   struct type *char_type = builtin_type (gdbarch)->builtin_char;
   struct value * function, *classval;
 
-  if (! target_has_execution)
+  if (! target_has_execution ())
     {
       /* Can't call into inferior to lookup class.  */
       return 0;
     {
       /* Can't call into inferior to lookup class.  */
       return 0;
@@ -141,7 +141,7 @@ lookup_child_selector (struct gdbarch *gdbarch, const char *selname)
   struct type *char_type = builtin_type (gdbarch)->builtin_char;
   struct value * function, *selstring;
 
   struct type *char_type = builtin_type (gdbarch)->builtin_char;
   struct value * function, *selstring;
 
-  if (! target_has_execution)
+  if (! target_has_execution ())
     {
       /* Can't call into inferior to lookup selector.  */
       return 0;
     {
       /* Can't call into inferior to lookup selector.  */
       return 0;
@@ -172,7 +172,7 @@ value_nsstring (struct gdbarch *gdbarch, char *ptr, int len)
   struct symbol *sym;
   struct type *type;
 
   struct symbol *sym;
   struct type *type;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return 0;          /* Can't call into inferior to create NSString.  */
 
   stringValue[2] = value_string(ptr, len, char_type);
     return 0;          /* Can't call into inferior to create NSString.  */
 
   stringValue[2] = value_string(ptr, len, char_type);
index c1430e9b5335e05faf144042d7c80670f6f3ba3b..678984baeb6a8bc68a3dfa1e2a6d3df21fbae2ac 100644 (file)
@@ -390,7 +390,7 @@ record_btrace_target_open (const char *args, int from_tty)
 
   record_preopen ();
 
 
   record_preopen ();
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("The program is not being run."));
 
   for (thread_info *tp : current_inferior ()->non_exited_threads ())
     error (_("The program is not being run."));
 
   for (thread_info *tp : current_inferior ()->non_exited_threads ())
index 1c8b791ffb9e99da2c6f971707599cac3447d9ec..c0fedfc32e158fd4397111323001f66cefe3d657 100644 (file)
@@ -947,7 +947,7 @@ record_full_open_1 (const char *name, int from_tty)
     fprintf_unfiltered (gdb_stdlog, "Process record: record_full_open_1\n");
 
   /* check exec */
     fprintf_unfiltered (gdb_stdlog, "Process record: record_full_open_1\n");
 
   /* check exec */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("Process record: the program is not being run."));
   if (non_stop)
     error (_("Process record target can't debug inferior in non-stop mode "
     error (_("Process record: the program is not being run."));
   if (non_stop)
     error (_("Process record target can't debug inferior in non-stop mode "
index 5fc80ebc8f76af15737aaedf64ca8edfa21fd5d8..1ef9b44f731e42b96e45f829d7ca0d13abad223b 100644 (file)
@@ -4843,7 +4843,7 @@ remote_target::start_remote (int from_tty, int extended_p)
     }
 
   /* If we connected to a live target, do some additional setup.  */
     }
 
   /* If we connected to a live target, do some additional setup.  */
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       if (symfile_objfile)     /* No use without a symbol-file.  */
        remote_check_symbols ();
     {
       if (symfile_objfile)     /* No use without a symbol-file.  */
        remote_check_symbols ();
@@ -4946,7 +4946,7 @@ remote_target::remote_check_symbols ()
      but our current inferior is not running, we should not invite the
      remote target to request symbol lookups related to its
      (unrelated) current process.  */
      but our current inferior is not running, we should not invite the
      remote target to request symbol lookups related to its
      (unrelated) current process.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return;
 
   if (packet_support (PACKET_qSymbol) == PACKET_DISABLE)
     return;
 
   if (packet_support (PACKET_qSymbol) == PACKET_DISABLE)
@@ -5544,7 +5544,7 @@ remote_target::open_1 (const char *name, int from_tty, int extended_p)
   /* If we're connected to a running target, target_preopen will kill it.
      Ask this question first, before target_preopen has a chance to kill
      anything.  */
   /* If we're connected to a running target, target_preopen will kill it.
      Ask this question first, before target_preopen has a chance to kill
      anything.  */
-  if (curr_remote != NULL && !target_has_execution)
+  if (curr_remote != NULL && !target_has_execution ())
     {
       if (from_tty
          && !query (_("Already connected to a remote target.  Disconnect? ")))
     {
       if (from_tty
          && !query (_("Already connected to a remote target.  Disconnect? ")))
@@ -5727,7 +5727,7 @@ remote_target::remote_detach_1 (inferior *inf, int from_tty)
   struct remote_state *rs = get_remote_state ();
   int is_fork_parent;
 
   struct remote_state *rs = get_remote_state ();
   int is_fork_parent;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("No process to detach from."));
 
   target_announce_detach (from_tty);
     error (_("No process to detach from."));
 
   target_announce_detach (from_tty);
@@ -10718,7 +10718,8 @@ remote_target::verify_memory (const gdb_byte *data, CORE_ADDR lma, ULONGEST size
 
   /* It doesn't make sense to use qCRC if the remote target is
      connected but not running.  */
 
   /* It doesn't make sense to use qCRC if the remote target is
      connected but not running.  */
-  if (target_has_execution && packet_support (PACKET_qCRC) != PACKET_DISABLE)
+  if (target_has_execution ()
+      && packet_support (PACKET_qCRC) != PACKET_DISABLE)
     {
       enum packet_result result;
 
     {
       enum packet_result result;
 
@@ -10980,7 +10981,7 @@ remote_target::xfer_partial (enum target_object object,
       /* If the remote target is connected but not running, we should
         pass this request down to a lower stratum (e.g. the executable
         file).  */
       /* If the remote target is connected but not running, we should
         pass this request down to a lower stratum (e.g. the executable
         file).  */
-      if (!target_has_execution)
+      if (!target_has_execution ())
        return TARGET_XFER_EOF;
 
       if (writebuf != NULL)
        return TARGET_XFER_EOF;
 
       if (writebuf != NULL)
@@ -11720,7 +11721,7 @@ remote_target::read_description ()
 
   /* Do not try this during initial connection, when we do not know
      whether there is a running but stopped thread.  */
 
   /* Do not try this during initial connection, when we do not know
      whether there is a running but stopped thread.  */
-  if (!target_has_execution || inferior_ptid == null_ptid)
+  if (!target_has_execution () || inferior_ptid == null_ptid)
     return beneath ()->read_description ();
 
   if (!data->guesses.empty ())
     return beneath ()->read_description ();
 
   if (!data->guesses.empty ())
@@ -13584,7 +13585,7 @@ remote_target::get_min_fast_tracepoint_insn_len ()
 
   /* If we're not debugging a process yet, the IPA can't be
      loaded.  */
 
   /* If we're not debugging a process yet, the IPA can't be
      loaded.  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return 0;
 
   /* Make sure the remote is pointing at the right process.  */
     return 0;
 
   /* Make sure the remote is pointing at the right process.  */
index 29154cfc2e7d3d06c748b2b857f451c222875ff6..c49e64b5a62330f50fb527cb55da556109b16519 100644 (file)
@@ -650,7 +650,7 @@ rs6000_nat_target::xfer_shared_libraries
 
   /* This function assumes that it is being run with a live process.
      Core files are handled via gdbarch.  */
 
   /* This function assumes that it is being run with a live process.
      Core files are handled via gdbarch.  */
-  gdb_assert (target_has_execution);
+  gdb_assert (target_has_execution ());
 
   if (writebuf)
     return TARGET_XFER_E_IO;
 
   if (writebuf)
     return TARGET_XFER_E_IO;
index 90cb0fa312a2bbdd4c51ca14a6ac6ad80b9f3b3e..72cba90a27ca986e59d7fdcd78a79ef12e0d66d6 100644 (file)
@@ -123,7 +123,7 @@ score7_fetch_inst (struct gdbarch *gdbarch, CORE_ADDR addr, gdb_byte *memblock)
   int big;
   int ret;
 
   int big;
   int ret;
 
-  if (target_has_execution && memblock != NULL)
+  if (target_has_execution () && memblock != NULL)
     {
       /* Fetch instruction from local MEMBLOCK.  */
       memcpy (buf, memblock, SCORE_INSTLEN);
     {
       /* Fetch instruction from local MEMBLOCK.  */
       memcpy (buf, memblock, SCORE_INSTLEN);
index 94a6ac8375438d1758037871735e691cdf0cef13..0f146725dba328e7ec7a3093e282a5648482b677 100644 (file)
@@ -781,7 +781,7 @@ enable_break (void)
   if (exec_bfd == NULL)
     return 0;
 
   if (exec_bfd == NULL)
     return 0;
 
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return 0;
 
   info = get_dsbt_info ();
     return 0;
 
   info = get_dsbt_info ();
index 570450c5400619925c8e19d2a0bdec06d328cd8e..4ae21d190bf29ff9cd08b556ed3256ec81bc9a5c 100644 (file)
@@ -3014,7 +3014,7 @@ svr4_solib_create_inferior_hook (int from_tty)
 
   /* No point setting a breakpoint in the dynamic linker if we can't
      hit it (e.g., a core file, or a trace file).  */
 
   /* No point setting a breakpoint in the dynamic linker if we can't
      hit it (e.g., a core file, or a trace file).  */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     return;
 
   if (!svr4_have_link_map_offsets ())
     return;
 
   if (!svr4_have_link_map_offsets ())
index cd410bb9e3e0998dd7a0a02665fa085693f2f0a8..cf5d05e83b2cd43a7bf8dcf68547cd54618f72f9 100644 (file)
@@ -729,7 +729,7 @@ update_solib_list (int from_tty)
 
   /* We can reach here due to changing solib-search-path or the
      sysroot, before having any inferior.  */
 
   /* We can reach here due to changing solib-search-path or the
      sysroot, before having any inferior.  */
-  if (target_has_execution && inferior_ptid != null_ptid)
+  if (target_has_execution () && inferior_ptid != null_ptid)
     {
       struct inferior *inf = current_inferior ();
 
     {
       struct inferior *inf = current_inferior ();
 
@@ -1351,7 +1351,7 @@ reload_shared_libraries (const char *ignored, int from_tty,
      Absent this call, if we've just connected to a target and set 
      solib-absolute-prefix or solib-search-path, we'll lose all information
      about ld.so.  */
      Absent this call, if we've just connected to a target and set 
      solib-absolute-prefix or solib-search-path, we'll lose all information
      about ld.so.  */
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       /* Reset or free private data structures not associated with
         so_list entries.  */
     {
       /* Reset or free private data structures not associated with
         so_list entries.  */
index 372df041905cbfcb0d4c6f0b02cd055acdd22cfa..a6e46570437c369c33a75f54e6da072922363100 100644 (file)
@@ -448,7 +448,7 @@ static void
 adi_examine_command (const char *args, int from_tty)
 {
   /* make sure program is active and adi is available */
 adi_examine_command (const char *args, int from_tty)
 {
   /* make sure program is active and adi is available */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("ADI command requires a live process/thread"));
 
   if (!adi_available ())
     error (_("ADI command requires a live process/thread"));
 
   if (!adi_available ())
@@ -484,7 +484,7 @@ adi_assign_command (const char *args, int from_tty)
     = N_("Usage: adi assign|a[/COUNT] ADDR = VERSION");
 
   /* make sure program is active and adi is available */
     = N_("Usage: adi assign|a[/COUNT] ADDR = VERSION");
 
   /* make sure program is active and adi is available */
-  if (!target_has_execution)
+  if (!target_has_execution ())
     error (_("ADI command requires a live process/thread"));
 
   if (!adi_available ())
     error (_("ADI command requires a live process/thread"));
 
   if (!adi_available ())
index 4f58daa6d22681fc45c2a7e9e025681604bdf10f..dd78a848caec3fa316cc81d31cbfea0c676421a6 100644 (file)
@@ -200,8 +200,11 @@ target_has_registers ()
 }
 
 bool
 }
 
 bool
-target_has_execution_1 (inferior *inf)
+target_has_execution (inferior *inf)
 {
 {
+  if (inf == nullptr)
+    inf = current_inferior ();
+
   for (target_ops *t = inf->top_target ();
        t != nullptr;
        t = inf->find_target_beneath (t))
   for (target_ops *t = inf->top_target ();
        t != nullptr;
        t = inf->find_target_beneath (t))
@@ -211,12 +214,6 @@ target_has_execution_1 (inferior *inf)
   return false;
 }
 
   return false;
 }
 
-int
-target_has_execution_current (void)
-{
-  return target_has_execution_1 (current_inferior ());
-}
-
 /* This is used to implement the various target commands.  */
 
 static void
 /* This is used to implement the various target commands.  */
 
 static void
@@ -1914,12 +1911,12 @@ target_preopen (int from_tty)
   if (current_inferior ()->pid != 0)
     {
       if (!from_tty
   if (current_inferior ()->pid != 0)
     {
       if (!from_tty
-         || !target_has_execution
+         || !target_has_execution ()
          || query (_("A program is being debugged already.  Kill it? ")))
        {
          /* Core inferiors actually should be detached, not
             killed.  */
          || query (_("A program is being debugged already.  Kill it? ")))
        {
          /* Core inferiors actually should be detached, not
             killed.  */
-         if (target_has_execution)
+         if (target_has_execution ())
            target_kill ();
          else
            target_detach (current_inferior (), 0);
            target_kill ();
          else
            target_detach (current_inferior (), 0);
@@ -3932,7 +3929,7 @@ static void
 set_target_permissions (const char *args, int from_tty,
                        struct cmd_list_element *c)
 {
 set_target_permissions (const char *args, int from_tty,
                        struct cmd_list_element *c)
 {
-  if (target_has_execution)
+  if (target_has_execution ())
     {
       update_target_permissions ();
       error (_("Cannot change this setting while the inferior is running."));
     {
       update_target_permissions ();
       error (_("Cannot change this setting while the inferior is running."));
index ea777f2fb3679bd7995e55e07f055551a2006f3e..20e7ae36ace776e5334075ba4475db371fe10395 100644 (file)
@@ -1829,16 +1829,10 @@ extern int target_has_registers ();
    whether or not the target is capable of execution, but there are
    also targets which can be current while not executing.  In that
    case this will become true after to_create_inferior or
    whether or not the target is capable of execution, but there are
    also targets which can be current while not executing.  In that
    case this will become true after to_create_inferior or
-   to_attach.  */
+   to_attach.  INF is the inferior to use; nullptr means to use the
+   current inferior.  */
 
 
-extern bool target_has_execution_1 (inferior *inf);
-
-/* Like target_has_execution_1, but always passes
-   current_inferior().  */
-
-extern int target_has_execution_current (void);
-
-#define target_has_execution target_has_execution_current ()
+extern bool target_has_execution (inferior *inf = nullptr);
 
 /* Can the target support the debugger control of thread execution?
    Can it lock the thread scheduler?  */
 
 /* Can the target support the debugger control of thread execution?
    Can it lock the thread scheduler?  */
index 8dbc7ced4dc3c84fd5860b5ad3c86989669e4e14..c50fb4dc7d4c1772ebf330b6b379bc80c3ae3dee 100644 (file)
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1677,7 +1677,7 @@ kill_or_detach (inferior *inf, int from_tty)
       switch_to_thread (thread);
 
       /* Leave core files alone.  */
       switch_to_thread (thread);
 
       /* Leave core files alone.  */
-      if (target_has_execution)
+      if (target_has_execution ())
        {
          if (inf->attach_flag)
            target_detach (inf, from_tty);
        {
          if (inf->attach_flag)
            target_detach (inf, from_tty);
index 0995a76c02f818b67e80e39a90e91146416aca3f..4906b3b53bd6892331eded7e5d45f0241bb43bdc 100644 (file)
@@ -155,7 +155,7 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
        }
       else
        {
        }
       else
        {
-         if (!target_has_execution)
+         if (!target_has_execution ())
            error (_("evaluation of this expression "
                     "requires the target program to be active"));
          else
            error (_("evaluation of this expression "
                     "requires the target program to be active"));
          else
@@ -182,7 +182,7 @@ value_allocate_space_in_inferior (int len)
   val = call_function_by_hand (val, NULL, blocklen);
   if (value_logical_not (val))
     {
   val = call_function_by_hand (val, NULL, blocklen);
   if (value_logical_not (val))
     {
-      if (!target_has_execution)
+      if (!target_has_execution ())
        error (_("No memory available to program now: "
                 "you need to start the target first"));
       else
        error (_("No memory available to program now: "
                 "you need to start the target first"));
       else
index 2a5524ed1286fdc92a02780dbc546e4f8b53710b..984f13941ce4796ebb3987dd7e20a6e515268656 100644 (file)
@@ -902,7 +902,7 @@ windows_solib_create_inferior_hook (int from_tty)
     }
   CORE_ADDR tlb;
   gdb_byte buf[8];
     }
   CORE_ADDR tlb;
   gdb_byte buf[8];
-  if (target_has_execution
+  if (target_has_execution ()
       && target_get_tib_address (inferior_ptid, &tlb)
       && !target_read_memory (tlb + peb_offset, buf, ptr_bytes))
     {
       && target_get_tib_address (inferior_ptid, &tlb)
       && !target_read_memory (tlb + peb_offset, buf, ptr_bytes))
     {