diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -2906,8 +2906,13 @@ if (ch == 'm') { do { auto pid_tid = response.GetPidTid(LLDB_INVALID_PROCESS_ID); - if (!pid_tid) - return {}; + if (!pid_tid) { + // if ids is empty, this is an error + if (ids.size() == 0) + return {}; + // if ids is not empty, bail out from here and process ids + break; + } ids.push_back(pid_tid.getValue()); ch = response.GetChar(); // Skip the command separator