[Lldb-commits] [lldb] [lldb] Assorted improvements to the Pipe class (PR #128719)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 25 07:36:00 PST 2025


================
@@ -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:

If num_bytes is 0 then there's nothing to copy, so do the break check first?

https://github.com/llvm/llvm-project/pull/128719


More information about the lldb-commits mailing list