xiaobai added a comment.

Thanks for doing this work! I'd love to see a faster LLDB. :)



================
Comment at: 
lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:2697-2717
+  std::string xfer_object;
+  if (packet.GetStringBeforeChar(xfer_object, ':') == 0)
+    return SendIllFormedResponse(packet, "qXfer packet missing object name");
+  // Consume ':'
+  packet.GetChar();
+  // Parse action (read/write).
+  std::string xfer_action;
----------------
labath wrote:
> I think it would be simpler to just forget about the StringExtractor here, 
> and do something like
> ```
> SmallVector<StringRef, 4> fields;
> StringRef(packet.GetStringRef()).split(fields, 3);
> if (fields.size() != 4) return "Malformed packet";
> // After this, "object" is in fields[0], "action" is in fields[1], annex is 
> in fields[2], and the rest is in fields[3]
> std::string buffer_key = fields[0] + fields[2];
> ...
> ```
I agree, that would make it simpler.


================
Comment at: 
lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:2738
+  if (!memory_buffer_sp) {
+    if (xfer_object == "auxv") {
+// *BSD impls should be able to do this too.
----------------
labath wrote:
> Given that this function is going to grow, it would be good to split it in 
> smaller chunks. Maybe move this code into something like 
> `ErrorOr<xfer_map::iterator> ReadObject(StringRef object)`?
+1

You could have smaller methods like "ParseAuxvPacket" and "ReadObject"


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62499/new/

https://reviews.llvm.org/D62499



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to