From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway20.websitewelcome.com (gateway20.websitewelcome.com [192.185.52.45]) by sourceware.org (Postfix) with ESMTPS id 55C193861965 for ; Tue, 21 Jul 2020 01:49:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 55C193861965 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tom@tromey.com Received: from cm16.websitewelcome.com (cm16.websitewelcome.com [100.42.49.19]) by gateway20.websitewelcome.com (Postfix) with ESMTP id EB3FE400D1676 for ; Mon, 20 Jul 2020 19:27:28 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id xhPBjAFkJQyTQxhPBjwYxC; Mon, 20 Jul 2020 20:49:17 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=TaHv+k6zOFDS08Xxx8kmYKeX+af5ge+R34bOuZ0Kljk=; b=SSWdnVmEnXV+u43Sup+4ti6Abe lJyE0Ne2x0Y0C0ra38CE+6tl8laWx7wYBe5jVU/n6CvIHVPfD3B+chV+NV5IIzMexUeUJQrM3paWE 0lNnSWg9yKC0BfDeAkaMi4sJY; Received: from 174-16-104-48.hlrn.qwest.net ([174.16.104.48]:39580 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1jxhPB-002QKw-IS; Mon, 20 Jul 2020 19:49:17 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 6/8] Remove target_has_execution macro Date: Mon, 20 Jul 2020 19:49:12 -0600 Message-Id: <20200721014914.29937-7-tom@tromey.com> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20200721014914.29937-1-tom@tromey.com> References: <20200721014914.29937-1-tom@tromey.com> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.104.48 X-Source-L: No X-Exim-ID: 1jxhPB-002QKw-IS X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-104-48.hlrn.qwest.net (bapiya.Home) [174.16.104.48]:39580 X-Source-Auth: tom+tromey.com X-Email-Count: 7 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3034.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_ABUSEAT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Jul 2020 01:49:22 -0000 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 * inferior.h (class inferior) : 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 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 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