[Lldb-commits] [lldb] [lldb][gdb-remote] Forward client terminal size to lldb-server (PR #201141)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Tue Jun 2 08:56:13 PDT 2026


================
@@ -963,6 +966,33 @@ GDBRemoteCommunicationServerCommon::Handle_QSetSTDERR(
   return SendErrorResponse(17);
 }
 
+GDBRemoteCommunication::PacketResult
+GDBRemoteCommunicationServerCommon::Handle_QSetSTDIOWindowSize(
+    StringExtractorGDBRemote &packet) {
+  // Format: "QSetSTDIOWindowSize:cols=N;rows=N"
+  packet.SetFilePos(::strlen("QSetSTDIOWindowSize:"));
+  llvm::StringRef body = packet.GetStringRef().substr(packet.GetFilePos());
+
+  uint16_t cols = 0;
+  uint16_t rows = 0;
+  llvm::SmallVector<llvm::StringRef, 4> fields;
+  body.split(fields, ';');
+  for (llvm::StringRef field : fields) {
+    auto [key, value] = field.split('=');
+    unsigned parsed = 0;
+    if (value.empty() || value.getAsInteger(10, parsed) || parsed > UINT16_MAX)
+      continue;
+    if (key == "cols")
+      cols = static_cast<uint16_t>(parsed);
+    else if (key == "rows")
+      rows = static_cast<uint16_t>(parsed);
+  }
+  if (cols == 0 || rows == 0)
+    return SendErrorResponse(17);
----------------
DavidSpickett wrote:

Add a blank line after this return. Single line if into immediate code makes me nervous.

And I assume 17 is arbitrary :) https://xkcd.com/221/

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


More information about the lldb-commits mailing list