================ @@ -1154,17 +1156,25 @@ Status GDBRemoteCommunication::StartDebugserverProcess( if (socket_pipe.CanWrite()) socket_pipe.CloseWriteFileDescriptor(); if (socket_pipe.CanRead()) { - // The port number may be up to "65535\0". - char port_cstr[6] = {0}; - size_t num_bytes = sizeof(port_cstr); // Read port from pipe with 10 second timeout. - error = socket_pipe.ReadWithTimeout( - port_cstr, num_bytes, std::chrono::seconds{10}, num_bytes); + std::string port_str; + while (error.Success()) { + char buf[10]; + if (llvm::Expected<size_t> num_bytes = socket_pipe.Read( + buf, std::size(buf), std::chrono::seconds(10))) { + port_str.append(buf, *num_bytes); + if (*num_bytes == 0) ---------------- DavidSpickett wrote:
And, maybe related, why do you not reserve the string length and use its storage as the buffer? Is this because the port number may not be 10 characters, it could be any number of characters? https://github.com/llvm/llvm-project/pull/128719 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits