From: Tom Tromey Date: Tue, 19 Jul 2022 19:07:32 +0000 (-0600) Subject: Change target_ops::async to accept bool X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4a570176b4031de847c2b6067798d67006c1e8f5;p=binutils-gdb.git Change target_ops::async to accept bool This changes the parameter of target_ops::async from int to bool. Regression tested on x86-64 Fedora 34. --- diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 32b289f3bbc..398f1c18b33 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -971,9 +971,9 @@ handle_target_event (int error, gdb_client_data client_data) /* Implement the "async" target method. */ void -fbsd_nat_target::async (int enable) +fbsd_nat_target::async (bool enable) { - if ((enable != 0) == is_async_p ()) + if (enable == is_async_p ()) return; /* Block SIGCHILD while we create/destroy the pipe, as the handler diff --git a/gdb/fbsd-nat.h b/gdb/fbsd-nat.h index 3a13bc8711f..eb7d29dd2a3 100644 --- a/gdb/fbsd-nat.h +++ b/gdb/fbsd-nat.h @@ -68,7 +68,7 @@ public: bool can_async_p () override; - void async (int) override; + void async (bool) override; thread_control_capabilities get_thread_control_capabilities () override { return tc_schedlock; } diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c index 41ca17ad62a..2ae534b2f5c 100644 --- a/gdb/inf-loop.c +++ b/gdb/inf-loop.c @@ -48,7 +48,7 @@ inferior_event_handler (enum inferior_event_type event_type) 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 ()) - target_async (0); + target_async (false); } /* Do all continuations associated with the whole inferior (not diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c index b9767978744..8995ef517dd 100644 --- a/gdb/inf-ptrace.c +++ b/gdb/inf-ptrace.c @@ -538,7 +538,7 @@ inf_ptrace_target::close () { /* Unregister from the event loop. */ if (is_async_p ()) - async (0); + async (false); inf_child_target::close (); } diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 17d15534356..69a7896b560 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -2605,7 +2605,7 @@ attach_command (const char *args, int from_tty) /* Enable async mode if it is supported by the target. */ if (target_can_async_p ()) - target_async (1); + target_async (true); /* Set up the "saved terminal modes" of the inferior based on what modes we are starting it with. */ diff --git a/gdb/infrun.c b/gdb/infrun.c index a59cbe64537..543cccc5311 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2353,7 +2353,7 @@ resume_1 (enum gdb_signal sig) if (target_can_async_p ()) { - target_async (1); + target_async (true); /* Tell the event loop we have an event to process. */ mark_async_event_handler (infrun_async_inferior_event_token); } @@ -4781,7 +4781,7 @@ wait_one () { /* If nothing is resumed, remove the target from the event loop. */ - target_async (0); + target_async (false); } else if (event.ws.kind () != TARGET_WAITKIND_IGNORE) return event; diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 0a93ab5c6ae..a2bbd3cbfc8 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1652,7 +1652,7 @@ linux_nat_target::resume (ptid_t scope_ptid, int step, enum gdb_signal signo) if (target_can_async_p ()) { - target_async (1); + target_async (true); /* Tell the event loop we have something to process. */ async_file_mark (); } @@ -4143,9 +4143,9 @@ handle_target_event (int error, gdb_client_data client_data) /* target_async implementation. */ void -linux_nat_target::async (int enable) +linux_nat_target::async (bool enable) { - if ((enable != 0) == is_async_p ()) + if (enable == is_async_p ()) return; /* Block child signals while we create/destroy the pipe, as their diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 11043c4b9f6..38e253eff36 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -87,7 +87,7 @@ public: bool supports_non_stop () override; bool always_non_stop_p () override; - void async (int) override; + void async (bool) override; void stop (ptid_t) override; diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 3f8a69dd04f..3a56925f63e 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -62,7 +62,7 @@ public: strata stratum () const override { return record_stratum; } void close () override; - void async (int) override; + void async (bool) override; void detach (inferior *inf, int from_tty) override { record_detach (this, inf, from_tty); } @@ -456,7 +456,7 @@ record_btrace_target::close () /* The async method of target record-btrace. */ void -record_btrace_target::async (int enable) +record_btrace_target::async (bool enable) { if (enable) mark_async_event_handler (record_btrace_async_inferior_event_handler); @@ -2187,7 +2187,7 @@ record_btrace_target::resume (ptid_t ptid, int step, enum gdb_signal signal) /* Async support. */ if (target_can_async_p ()) { - target_async (1); + target_async (true); mark_async_event_handler (record_btrace_async_inferior_event_handler); } } diff --git a/gdb/record-full.c b/gdb/record-full.c index 38e021529c7..48b92281fe6 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -223,7 +223,7 @@ public: strata stratum () const override { return record_stratum; } void close () override; - void async (int) override; + void async (bool) override; ptid_t wait (ptid_t, struct target_waitstatus *, target_wait_flags) override; bool stopped_by_watchpoint () override; bool stopped_data_address (CORE_ADDR *) override; @@ -1017,7 +1017,7 @@ record_full_base_target::close () /* "async" target method. */ void -record_full_base_target::async (int enable) +record_full_base_target::async (bool enable) { if (enable) mark_async_event_handler (record_full_async_inferior_event_token); diff --git a/gdb/remote.c b/gdb/remote.c index ed834228829..f91973458ea 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -537,7 +537,7 @@ public: bool is_async_p () override; - void async (int) override; + void async (bool) override; int async_wait_fd () override; @@ -4649,8 +4649,8 @@ remote_target::process_initial_stop_replies (int from_tty) the poll in stop_all_threads to consider events from it, so enable it temporarily. */ gdb_assert (!this->is_async_p ()); - SCOPE_EXIT { target_async (0); }; - target_async (1); + SCOPE_EXIT { target_async (false); }; + target_async (true); stop_all_threads ("remote connect in all-stop"); } @@ -5018,7 +5018,7 @@ remote_target::start_remote_1 (int from_tty, int extended_p) process_initial_stop_replies (from_tty); if (target_can_async_p ()) - target_async (1); + target_async (true); } /* Give the target a chance to look up symbols. */ @@ -10451,7 +10451,7 @@ extended_remote_target::create_inferior (const char *exec_file, /* If running asynchronously, register the target file descriptor with the event loop. */ if (target_can_async_p ()) - target_async (1); + target_async (true); /* Disable address space randomization if requested (and supported). */ if (supports_disable_randomization ()) @@ -14495,7 +14495,7 @@ remote_target::async_wait_fd () } void -remote_target::async (int enable) +remote_target::async (bool enable) { struct remote_state *rs = get_remote_state (); diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 8a9986454dd..b6628c4d0be 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -101,7 +101,7 @@ struct dummy_target : public target_ops bool attach_no_wait () override; bool can_async_p () override; bool is_async_p () override; - void async (int arg0) override; + void async (bool arg0) override; int async_wait_fd () override; bool has_pending_events () override; void thread_events (int arg0) override; @@ -275,7 +275,7 @@ struct debug_target : public target_ops bool attach_no_wait () override; bool can_async_p () override; bool is_async_p () override; - void async (int arg0) override; + void async (bool arg0) override; int async_wait_fd () override; bool has_pending_events () override; void thread_events (int arg0) override; @@ -2156,24 +2156,24 @@ debug_target::is_async_p () } void -target_ops::async (int arg0) +target_ops::async (bool arg0) { this->beneath ()->async (arg0); } void -dummy_target::async (int arg0) +dummy_target::async (bool arg0) { tcomplain (); } void -debug_target::async (int arg0) +debug_target::async (bool arg0) { gdb_printf (gdb_stdlog, "-> %s->async (...)\n", this->beneath ()->shortname ()); this->beneath ()->async (arg0); gdb_printf (gdb_stdlog, "<- %s->async (", this->beneath ()->shortname ()); - target_debug_print_int (arg0); + target_debug_print_bool (arg0); gdb_puts (")\n", gdb_stdlog); } diff --git a/gdb/target.c b/gdb/target.c index 18e53aa5d27..41144901fc1 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -2675,7 +2675,7 @@ target_resume (ptid_t scope_ptid, int step, enum gdb_signal signal) clear_inline_frame_state (curr_target, scope_ptid); if (target_can_async_p ()) - target_async (1); + target_async (true); } /* See target.h. */ @@ -4352,7 +4352,7 @@ maintenance_print_target_stack (const char *cmd, int from_tty) /* See target.h. */ void -target_async (int enable) +target_async (bool enable) { /* If we are trying to enable async mode then it must be the case that async mode is possible for this target. */ diff --git a/gdb/target.h b/gdb/target.h index 18559feef89..7e52716a9e8 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -713,7 +713,7 @@ struct target_ops TARGET_DEFAULT_RETURN (false); virtual bool is_async_p () TARGET_DEFAULT_RETURN (false); - virtual void async (int) + virtual void async (bool) TARGET_DEFAULT_NORETURN (tcomplain ()); virtual int async_wait_fd () TARGET_DEFAULT_NORETURN (noprocess ()); @@ -1886,7 +1886,7 @@ extern bool target_can_async_p (struct target_ops *target); extern bool target_is_async_p (); /* Enables/disabled async target events. */ -extern void target_async (int enable); +extern void target_async (bool enable); /* Enables/disables thread create and exit events. */ extern void target_thread_events (int enable); diff --git a/gdb/top.c b/gdb/top.c index 60835acd5e5..453fa236db1 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -1109,7 +1109,7 @@ public: current_ui->secondary_prompt_depth++; if (m_target_is_async_orig) - target_async (0); + target_async (false); } ~gdb_readline_wrapper_cleanup () @@ -1138,7 +1138,7 @@ public: saved_after_char_processing_hook = NULL; if (m_target_is_async_orig) - target_async (1); + target_async (true); } DISABLE_COPY_AND_ASSIGN (gdb_readline_wrapper_cleanup);