diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp index 11d0fec1926ab..29417b35fde3a 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -181,12 +181,6 @@ bool GDBRemoteCommunicationClient::GetQXferSigInfoReadSupported() { return m_supports_qXfer_siginfo_read == eLazyBoolYes; } -bool GDBRemoteCommunicationClient::GetMultiprocessSupported() { - if (m_supports_memory_tagging == eLazyBoolCalculate) - GetRemoteQSupported(); - return m_supports_multiprocess == eLazyBoolYes; -} - uint64_t GDBRemoteCommunicationClient::GetRemoteMaxPacketSize() { if (m_max_packet_size == 0) { GetRemoteQSupported(); @@ -1520,7 +1514,7 @@ Status GDBRemoteCommunicationClient::Detach(bool keep_stopped, } } - if (GetMultiprocessSupported()) { + if (m_supports_multiprocess) { // Some servers (e.g. qemu) require specifying the PID even if only a single // process is running. if (pid == LLDB_INVALID_PROCESS_ID) diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h index 4e89ade772ad3..3a62747603f6d 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h @@ -339,8 +339,6 @@ class GDBRemoteCommunicationClient : public GDBRemoteClientBase { bool GetQXferSigInfoReadSupported(); - bool GetMultiprocessSupported(); - LazyBool SupportsAllocDeallocMemory() // const { // Uncomment this to have lldb pretend the debug server doesn't respond to diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 0c876a8fd703e..30fb27932d192 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -1186,15 +1186,11 @@ Status ProcessGDBRemote::DoResume() { StreamString continue_packet; bool continue_packet_error = false; if (m_gdb_comm.HasAnyVContSupport()) { - std::string pid_prefix; - if (m_gdb_comm.GetMultiprocessSupported()) - pid_prefix = llvm::formatv("p{0:x-}.", GetID()); - if (m_continue_c_tids.size() == num_threads || (m_continue_c_tids.empty() && m_continue_C_tids.empty() && m_continue_s_tids.empty() && m_continue_S_tids.empty())) { - // All threads are continuing - continue_packet.Format("vCont;c:{0}-1", pid_prefix); + // All threads are continuing, just send a "c" packet + continue_packet.PutCString("c"); } else { continue_packet.PutCString("vCont"); @@ -1204,7 +1200,7 @@ Status ProcessGDBRemote::DoResume() { t_pos = m_continue_c_tids.begin(), t_end = m_continue_c_tids.end(); t_pos != t_end; ++t_pos) - continue_packet.Format(";c:{0}{1:x-}", pid_prefix, *t_pos); + continue_packet.Printf(";c:%4.4" PRIx64, *t_pos); } else continue_packet_error = true; } @@ -1215,8 +1211,8 @@ Status ProcessGDBRemote::DoResume() { s_pos = m_continue_C_tids.begin(), s_end = m_continue_C_tids.end(); s_pos != s_end; ++s_pos) - continue_packet.Format(";C{0:x-2}:{1}{2:x-}", s_pos->second, - pid_prefix, s_pos->first); + continue_packet.Printf(";C%2.2x:%4.4" PRIx64, s_pos->second, + s_pos->first); } else continue_packet_error = true; } @@ -1227,7 +1223,7 @@ Status ProcessGDBRemote::DoResume() { t_pos = m_continue_s_tids.begin(), t_end = m_continue_s_tids.end(); t_pos != t_end; ++t_pos) - continue_packet.Format(";s:{0}{1:x-}", pid_prefix, *t_pos); + continue_packet.Printf(";s:%4.4" PRIx64, *t_pos); } else continue_packet_error = true; } @@ -1238,8 +1234,8 @@ Status ProcessGDBRemote::DoResume() { s_pos = m_continue_S_tids.begin(), s_end = m_continue_S_tids.end(); s_pos != s_end; ++s_pos) - continue_packet.Format(";S{0:x-2}:{1}{2:x-}", s_pos->second, - pid_prefix, s_pos->first); + continue_packet.Printf(";S%2.2x:%4.4" PRIx64, s_pos->second, + s_pos->first); } else continue_packet_error = true; }