From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH 6/8] Remove target_has_execution macro
Date: Mon, 20 Jul 2020 19:49:12 -0600 [thread overview]
Message-ID: <20200721014914.29937-7-tom@tromey.com> (raw)
In-Reply-To: <20200721014914.29937-1-tom@tromey.com>
This removes the object-like macro target_has_execution, repalcing it
with a function call. target_has_execution_current is also now
handled by this function.
gdb/ChangeLog
2020-07-20 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.
---
gdb/ChangeLog | 53 +++++++++++++++++++++++++++++++++++++++++++
gdb/breakpoint.c | 8 +++----
gdb/cli/cli-dump.c | 2 +-
gdb/compile/compile.c | 2 +-
gdb/eval.c | 2 +-
gdb/exec.c | 2 +-
gdb/gcore.c | 4 ++--
gdb/inf-loop.c | 2 +-
gdb/infcall.c | 4 ++--
gdb/infcmd.c | 8 +++----
gdb/inferior.h | 2 +-
gdb/infrun.c | 16 ++++++-------
gdb/linux-fork.c | 2 +-
gdb/linux-tdep.c | 4 ++--
gdb/linux-thread-db.c | 10 ++++----
gdb/objc-lang.c | 8 +++----
gdb/record-btrace.c | 2 +-
gdb/record-full.c | 2 +-
gdb/remote.c | 17 +++++++-------
gdb/rs6000-nat.c | 2 +-
gdb/score-tdep.c | 2 +-
gdb/solib-dsbt.c | 2 +-
gdb/solib-svr4.c | 2 +-
gdb/solib.c | 4 ++--
gdb/sparc64-tdep.c | 4 ++--
gdb/target.c | 17 ++++++--------
gdb/target.h | 12 +++-------
gdb/top.c | 2 +-
gdb/valops.c | 4 ++--
gdb/windows-tdep.c | 2 +-
30 files changed, 124 insertions(+), 79 deletions(-)
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 6d81323dd92..37f490e4c86 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1751,7 +1751,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. */
- 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
@@ -2871,7 +2871,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 ())
- && (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,
@@ -2927,7 +2927,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 ())
- && (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,
@@ -4403,7 +4403,7 @@ bpstat_do_actions_1 (bpstat *bsp)
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 ();
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 567ef2eeded..013d15528af 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -505,7 +505,7 @@ restore_command (const char *args, int from_tty)
struct callback_data data;
int binary_flag = 0;
- if (!target_has_execution)
+ if (!target_has_execution ())
noprocess ();
data.load_offset = 0;
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index 0c29a0476e7..59dc52e3b4c 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -683,7 +683,7 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
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."));
diff --git a/gdb/eval.c b/gdb/eval.c
index c62c35f3183..f93bbb0b78d 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -69,7 +69,7 @@ evaluate_subexp (struct type *expect_type, struct expression *exp,
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 ());
diff --git a/gdb/exec.c b/gdb/exec.c
index 2ff5846c0e7..ba11c8e47ae 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -545,7 +545,7 @@ exec_file_attach (const char *filename, 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."));
diff --git a/gdb/gcore.c b/gdb/gcore.c
index 2ebc8df3f8b..bbd3478d96d 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -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. */
- if (!target_has_execution)
+ if (!target_has_execution ())
noprocess ();
if (args && *args)
@@ -316,7 +316,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. */
- if (!target_has_execution)
+ if (!target_has_execution ())
return 0;
/* The following code assumes that the link map is arranged as
diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c
index cf746b8588c..68c94d9e942 100644
--- a/gdb/inf-loop.c
+++ b/gdb/inf-loop.c
@@ -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. */
- if (target_has_execution && target_can_async_p ())
+ if (target_has_execution () && target_can_async_p ())
target_async (0);
}
diff --git a/gdb/infcall.c b/gdb/infcall.c
index cdb30137c35..0c603d717d2 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -786,7 +786,7 @@ call_function_by_hand_dummy (struct value *function,
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)
@@ -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 (! target_has_execution)
+ if (! target_has_execution ())
{
const char *name = get_function_name (funaddr,
name_buf, sizeof (name_buf));
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 86a680b8e52..07f2187a116 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -64,7 +64,7 @@ static void until_next_command (int);
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
@@ -358,7 +358,7 @@ post_create_inferior (struct target_ops *target, 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. */
@@ -1861,7 +1861,7 @@ info_program_command (const char *args, int from_tty)
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;
@@ -2569,7 +2569,7 @@ attach_command (const char *args, int from_tty)
/* 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 ();
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 606cece6c0b..70edf21b34b 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -377,7 +377,7 @@ class inferior : public refcounted_object
{ 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;
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 2298088910e..6f0154a0234 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -206,7 +206,7 @@ static void
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."));
@@ -235,7 +235,7 @@ static void
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."));
@@ -2915,7 +2915,7 @@ check_multi_target_resumption (process_stratum_target *resume_target)
{
switch_to_inferior_no_thread (inf);
- if (!target_has_execution)
+ if (!target_has_execution ())
continue;
process_stratum_target *proc_target
@@ -3353,7 +3353,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)
{
- if (!target_has_execution || inferior_ptid == null_ptid)
+ if (!target_has_execution () || inferior_ptid == null_ptid)
return;
if (target_is_non_stop_p ())
@@ -8410,7 +8410,7 @@ print_stop_event (struct ui_out *uiout, bool displays)
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 ())
{
@@ -8566,7 +8566,7 @@ normal_stop (void)
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)
@@ -8671,7 +8671,7 @@ normal_stop (void)
annotate_stopped ();
- if (target_has_execution)
+ if (target_has_execution ())
{
if (last.kind != TARGET_WAITKIND_SIGNALLED
&& last.kind != TARGET_WAITKIND_EXITED
@@ -9187,7 +9187,7 @@ class infcall_suspend_state
/* 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 ());
}
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index e232d9c263a..b3d8fc1a174 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -645,7 +645,7 @@ checkpoint_command (const char *args, int from_tty)
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. */
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index fd4337f100d..ade37ae023e 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -753,7 +753,7 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
}
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."));
@@ -2216,7 +2216,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. */
- if (!target_has_execution)
+ if (!target_has_execution ())
{
long phdrs_size;
int num_phdrs, i;
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index ebb4022539d..839688faf0e 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -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. */
- if (target_has_execution)
+ if (target_has_execution ())
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. */
- 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 "
@@ -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);
- 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"));
@@ -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. */
- 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
@@ -1358,7 +1358,7 @@ record_thread (struct thread_db_info *info,
else
tp->priv.reset (priv);
- if (target_has_execution)
+ if (target_has_execution ())
check_thread_signals ();
return tp;
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 63cdac1b035..7aeacc753ee 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -33,7 +33,7 @@
#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"
@@ -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;
- if (! target_has_execution)
+ if (! target_has_execution ())
{
/* 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;
- if (! target_has_execution)
+ if (! target_has_execution ())
{
/* 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;
- 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);
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 718de62f280..a402983babb 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -389,7 +389,7 @@ record_btrace_target_open (const char *args, int from_tty)
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 ())
diff --git a/gdb/record-full.c b/gdb/record-full.c
index 1d8f1930a5b..527daadd5fb 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -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 */
- 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 "
diff --git a/gdb/remote.c b/gdb/remote.c
index 59075cb09f2..a8b12cc50aa 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -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 (target_has_execution)
+ if (target_has_execution ())
{
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. */
- if (!target_has_execution)
+ if (!target_has_execution ())
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 (curr_remote != NULL && !target_has_execution)
+ if (curr_remote != NULL && !target_has_execution ())
{
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;
- if (!target_has_execution)
+ if (!target_has_execution ())
error (_("No process to detach from."));
target_announce_detach (from_tty);
@@ -10715,7 +10715,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. */
- if (target_has_execution && packet_support (PACKET_qCRC) != PACKET_DISABLE)
+ if (target_has_execution ()
+ && packet_support (PACKET_qCRC) != PACKET_DISABLE)
{
enum packet_result result;
@@ -10977,7 +10978,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 (!target_has_execution)
+ if (!target_has_execution ())
return TARGET_XFER_EOF;
if (writebuf != NULL)
@@ -11717,7 +11718,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. */
- if (!target_has_execution || inferior_ptid == null_ptid)
+ if (!target_has_execution () || inferior_ptid == null_ptid)
return beneath ()->read_description ();
if (!data->guesses.empty ())
@@ -13581,7 +13582,7 @@ remote_target::get_min_fast_tracepoint_insn_len ()
/* 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. */
diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c
index 654e06e3e4b..7280b048efa 100644
--- a/gdb/rs6000-nat.c
+++ b/gdb/rs6000-nat.c
@@ -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. */
- gdb_assert (target_has_execution);
+ gdb_assert (target_has_execution ());
if (writebuf)
return TARGET_XFER_E_IO;
diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c
index 90cb0fa312a..72cba90a27c 100644
--- a/gdb/score-tdep.c
+++ b/gdb/score-tdep.c
@@ -123,7 +123,7 @@ score7_fetch_inst (struct gdbarch *gdbarch, CORE_ADDR addr, gdb_byte *memblock)
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);
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 94a6ac83754..0f146725dba 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -781,7 +781,7 @@ enable_break (void)
if (exec_bfd == NULL)
return 0;
- if (!target_has_execution)
+ if (!target_has_execution ())
return 0;
info = get_dsbt_info ();
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 570450c5400..4ae21d190bf 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -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). */
- if (!target_has_execution)
+ if (!target_has_execution ())
return;
if (!svr4_have_link_map_offsets ())
diff --git a/gdb/solib.c b/gdb/solib.c
index cd410bb9e3e..cf5d05e83b2 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -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. */
- if (target_has_execution && inferior_ptid != null_ptid)
+ if (target_has_execution () && inferior_ptid != null_ptid)
{
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. */
- if (target_has_execution)
+ if (target_has_execution ())
{
/* Reset or free private data structures not associated with
so_list entries. */
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index f4810523dfa..6279c57a0ac 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -448,7 +448,7 @@ static void
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 ())
@@ -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 */
- if (!target_has_execution)
+ if (!target_has_execution ())
error (_("ADI command requires a live process/thread"));
if (!adi_available ())
diff --git a/gdb/target.c b/gdb/target.c
index a186b1b163c..ad95044d0c8 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -200,8 +200,11 @@ target_has_registers ()
}
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))
@@ -211,12 +214,6 @@ target_has_execution_1 (inferior *inf)
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
@@ -1906,12 +1903,12 @@ target_preopen (int 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. */
- if (target_has_execution)
+ if (target_has_execution ())
target_kill ();
else
target_detach (current_inferior (), 0);
@@ -3923,7 +3920,7 @@ static void
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."));
diff --git a/gdb/target.h b/gdb/target.h
index a0a8d082f0d..7811f499f70 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1811,16 +1811,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
- 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? */
diff --git a/gdb/top.c b/gdb/top.c
index acd31afb9a9..6233575eed6 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1681,7 +1681,7 @@ kill_or_detach (inferior *inf, int from_tty)
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);
diff --git a/gdb/valops.c b/gdb/valops.c
index 033fd42036a..82dba2c89af 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -155,7 +155,7 @@ find_function_in_inferior (const char *name, struct objfile **objf_p)
}
else
{
- if (!target_has_execution)
+ if (!target_has_execution ())
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))
{
- if (!target_has_execution)
+ if (!target_has_execution ())
error (_("No memory available to program now: "
"you need to start the target first"));
else
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index 8be95ab0f82..fc73ba7736e 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -898,7 +898,7 @@ windows_solib_create_inferior_hook (int from_tty)
}
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))
{
--
2.17.2
next prev parent reply other threads:[~2020-07-21 1:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-21 1:49 [PATCH 0/8] Remove object-like target macros Tom Tromey
2020-07-21 1:49 ` [PATCH 1/8] Remove target_has_all_memory Tom Tromey
2020-07-21 1:49 ` [PATCH 2/8] Remove target_has_memory macro Tom Tromey
2020-07-21 1:49 ` [PATCH 3/8] Remove target_has_stack macro Tom Tromey
2020-07-21 17:12 ` Christian Biesinger
2020-09-29 1:36 ` Tom Tromey
2020-07-21 1:49 ` [PATCH 4/8] Remove target_has_registers macro Tom Tromey
2020-07-21 1:49 ` [PATCH 5/8] Turn target_can_execute_reverse into function-like macro Tom Tromey
2020-07-21 2:30 ` Simon Marchi
2020-07-21 17:07 ` Christian Biesinger
2020-09-29 1:36 ` Tom Tromey
2020-07-21 1:49 ` Tom Tromey [this message]
2020-07-21 1:49 ` [PATCH 7/8] Turn target_can_lock_scheduler into a " Tom Tromey
2020-07-21 2:32 ` Simon Marchi
2020-07-21 11:28 ` Tom Tromey
2020-09-29 1:37 ` Tom Tromey
2020-07-21 1:49 ` [PATCH 8/8] Turn target_have_steppable_watchpoint into " Tom Tromey
2020-09-29 1:38 ` [PATCH 0/8] Remove object-like target macros Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200721014914.29937-7-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).