Index: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h =================================================================== --- lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h +++ lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h @@ -273,6 +273,9 @@ // in non-stop mode, no response otherwise. PacketResult SendContinueSuccessResponse(); + void AppendThreadIDToResponse(StreamString &response, lldb::pid_t pid, + lldb::tid_t tid); + private: llvm::Expected> BuildTargetXml(); Index: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp =================================================================== --- lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp +++ lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp @@ -826,10 +826,8 @@ // Include the (pid and) tid. response.PutCString("thread:"); - if (bool(m_extensions_supported & - NativeProcessProtocol::Extension::multiprocess)) - response.Format("p{0:x-}.", process.GetID()); - response.Format("{0:x-};", thread.GetID()); + AppendThreadIDToResponse(response, process.GetID(), thread.GetID()); + response.PutChar(';'); // Include the thread name if there is one. const std::string thread_name = thread.GetName(); @@ -1448,9 +1446,8 @@ StreamString response; response.PutCString("QC"); - if (bool(m_extensions_supported & NativeProcessProtocol::Extension::multiprocess)) - response.Format("p{0:x-}.", m_current_process->GetID()); - response.Format("{0:x-}", thread->GetID()); + AppendThreadIDToResponse(response, m_current_process->GetID(), + thread->GetID()); return SendPacketNoLock(response.GetString()); } @@ -2019,10 +2016,7 @@ LLDB_LOG(log, "iterated thread {0} (tid={1})", thread_index, thread->GetID()); response.PutChar(had_any ? ',' : 'm'); - if (bool(m_extensions_supported & - NativeProcessProtocol::Extension::multiprocess)) - response.Format("p{0:x-}.", pid); - response.Format("{0:x-}", thread->GetID()); + AppendThreadIDToResponse(response, pid, thread->GetID()); had_any = true; } } @@ -4164,6 +4158,14 @@ return m_non_stop ? SendOKResponse() : PacketResult::Success; } +void GDBRemoteCommunicationServerLLGS::AppendThreadIDToResponse( + StreamString &response, lldb::pid_t pid, lldb::tid_t tid) { + if (bool(m_extensions_supported & + NativeProcessProtocol::Extension::multiprocess)) + response.Format("p{0:x-}.", pid); + response.Format("{0:x-}", tid); +} + std::string lldb_private::process_gdb_remote::LLGSArgToURL(llvm::StringRef url_arg, bool reverse_connect) {