X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fremote.c;h=aa6a67a96e0a5be78243729611566358a20e96f4;hb=29ef4c0699e1b46d41ade00ae07a54f979ea21cc;hp=290edd07cd17912f7e146015678b2d49f5150c34;hpb=bc521517b7058a231a08bf8f3deae7cd41cd62d7;p=binutils-gdb.git diff --git a/gdb/remote.c b/gdb/remote.c index 290edd07cd1..aa6a67a96e0 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -391,7 +391,7 @@ private: static const target_info remote_target_info = { "remote", - N_("Remote serial target in gdb-specific protocol"), + N_("Remote target using gdb-specific protocol"), remote_doc }; @@ -426,8 +426,6 @@ public: void store_registers (struct regcache *, int) override; void prepare_to_store (struct regcache *) override; - void files_info () override; - int insert_breakpoint (struct gdbarch *, struct bp_target_info *) override; int remove_breakpoint (struct gdbarch *, struct bp_target_info *, @@ -660,8 +658,8 @@ public: bool use_agent (bool use) override; bool can_use_agent () override; - struct btrace_target_info *enable_btrace (ptid_t ptid, - const struct btrace_config *conf) override; + struct btrace_target_info * + enable_btrace (thread_info *tp, const struct btrace_config *conf) override; void disable_btrace (struct btrace_target_info *tinfo) override; @@ -959,7 +957,7 @@ private: static const target_info extended_remote_target_info = { "extended-remote", - N_("Extended remote serial target in gdb-specific protocol"), + N_("Extended remote target using gdb-specific protocol"), remote_doc }; @@ -6185,16 +6183,12 @@ extended_remote_target::attach (const char *args, int from_tty) = remote_notif_parse (this, ¬if_client_stop, wait_status); push_stop_reply ((struct stop_reply *) reply); - - if (target_can_async_p ()) - target_async (1); } else { gdb_assert (wait_status == NULL); gdb_assert (target_can_async_p ()); - target_async (1); } } @@ -6573,16 +6567,6 @@ remote_target::resume (ptid_t ptid, int step, enum gdb_signal siggnal) for (thread_info *tp : all_non_exited_threads (this, ptid)) get_remote_thread_info (tp)->set_resumed (); - /* We are about to start executing the inferior, let's register it - with the event loop. NOTE: this is the one place where all the - execution commands end up. We could alternatively do this in each - of the execution commands in infcmd.c. */ - /* FIXME: ezannoni 1999-09-28: We may need to move this out of here - into infcmd.c in order to allow inferior function calls to work - NOT asynchronously. */ - if (target_can_async_p ()) - target_async (1); - /* We've just told the target to resume. The remote server will wait for the inferior to stop, and then send a stop reply. In the mean time, we can't start another command/query ourselves @@ -7438,7 +7422,7 @@ remote_target::remote_notif_remove_queued_reply (ptid_t ptid) if (notif_debug) fprintf_unfiltered (gdb_stdlog, "notif: discard queued event: 'Stop' in %s\n", - target_pid_to_str (ptid).c_str ()); + ptid.to_string ().c_str ()); return result; } @@ -7476,7 +7460,7 @@ remote_target::push_stop_reply (struct stop_reply *new_event) if (notif_debug) fprintf_unfiltered (gdb_stdlog, "notif: push 'Stop' %s to queue %d\n", - target_pid_to_str (new_event->ptid).c_str (), + new_event->ptid.to_string ().c_str (), int (rs->stop_reply_queue.size ())); /* Mark the pending event queue only if async mode is currently enabled. @@ -9420,11 +9404,6 @@ remote_target::flash_done () } } -void -remote_target::files_info () -{ - puts_filtered ("Debugging a target over a serial line.\n"); -} /* Stuff for dealing with the packets which are part of this protocol. See comment at top of file for details. */ @@ -9526,7 +9505,7 @@ escape_buffer (const char *buf, int n) string_file stb; stb.putstrn (buf, n, '\\'); - return std::move (stb.string ()); + return stb.release (); } int @@ -14110,12 +14089,15 @@ remote_target::btrace_sync_conf (const btrace_config *conf) } } -/* Read the current thread's btrace configuration from the target and - store it into CONF. */ +/* Read TP's btrace configuration from the target and store it into CONF. */ static void -btrace_read_config (struct btrace_config *conf) +btrace_read_config (thread_info *tp, struct btrace_config *conf) { + /* target_read_stralloc relies on INFERIOR_PTID. */ + scoped_restore_current_thread restore_thread; + switch_to_thread (tp); + gdb::optional xml = target_read_stralloc (current_inferior ()->top_target (), TARGET_OBJECT_BTRACE_CONF, ""); @@ -14139,14 +14121,10 @@ remote_target::remote_btrace_maybe_reopen () if (packet_support (PACKET_qXfer_btrace_conf) != PACKET_ENABLE) return; - scoped_restore_current_thread restore_thread; - for (thread_info *tp : all_non_exited_threads (this)) { - set_general_thread (tp->ptid); - memset (&rs->btrace_config, 0x00, sizeof (struct btrace_config)); - btrace_read_config (&rs->btrace_config); + btrace_read_config (tp, &rs->btrace_config); if (rs->btrace_config.format == BTRACE_FORMAT_NONE) continue; @@ -14185,7 +14163,8 @@ remote_target::remote_btrace_maybe_reopen () /* Enable branch tracing. */ struct btrace_target_info * -remote_target::enable_btrace (ptid_t ptid, const struct btrace_config *conf) +remote_target::enable_btrace (thread_info *tp, + const struct btrace_config *conf) { struct btrace_target_info *tinfo = NULL; struct packet_config *packet = NULL; @@ -14209,6 +14188,7 @@ remote_target::enable_btrace (ptid_t ptid, const struct btrace_config *conf) btrace_sync_conf (conf); + ptid_t ptid = tp->ptid; set_general_thread (ptid); buf += xsnprintf (buf, endbuf - buf, "%s", packet->name); @@ -14232,7 +14212,7 @@ remote_target::enable_btrace (ptid_t ptid, const struct btrace_config *conf) tracing itself is not impacted. */ try { - btrace_read_config (&tinfo->conf); + btrace_read_config (tp, &tinfo->conf); } catch (const gdb_exception_error &err) {