[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:35:39 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:
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
More information about the lldb-commits
mailing list