[Lldb-commits] [lldb] [lldb-dap] Refactoring IOStream into Transport handler. (PR #130026)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Mar 10 05:12:44 PDT 2025


================
@@ -838,19 +775,16 @@ llvm::Error DAP::Loop() {
     StopEventHandlers();
   });
   while (!disconnecting) {
-    llvm::json::Object object;
-    lldb_dap::PacketStatus status = GetNextObject(object);
-
-    if (status == lldb_dap::PacketStatus::EndOfFile) {
-      break;
-    }
-
-    if (status != lldb_dap::PacketStatus::Success) {
-      return llvm::createStringError(llvm::inconvertibleErrorCode(),
-                                     "failed to send packet");
+    auto next = transport.Read(log);
+    if (auto Err = next.takeError()) {
+      // On EOF, simply break out of the loop.
+      std::error_code ec = llvm::errorToErrorCode(std::move(Err));
+      if (ec == Transport::kEOF)
+        break;
+      return llvm::errorCodeToError(ec);
     }
----------------
labath wrote:

Then this would be something like:
```suggestion
    if (auto Err = next.takeError()) {
      // On EOF, simply break out of the loop.
      return handleErrors(std::move(Err), [](const EOFError &) {});
    }
```

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


More information about the lldb-commits mailing list