[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