[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:40 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:
Also shouldn't there be something here that stops us reading more than the buf size?
If I read 9 bytes in one call, then 10 in the next, it'll overflow. Should there be some tracking of how much we have already read?
https://github.com/llvm/llvm-project/pull/128719
More information about the lldb-commits
mailing list