[Lldb-commits] [lldb] [LLDB-DAP] SBDebugger don't prefix title on progress updates (PR #124648)

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 19 17:13:49 PST 2025


================
@@ -428,14 +453,35 @@ void ProgressEventThreadFunction(DAP &dap) {
           done = true;
         }
       } else {
-        uint64_t progress_id = 0;
-        uint64_t completed = 0;
-        uint64_t total = 0;
-        bool is_debugger_specific = false;
-        const char *message = lldb::SBDebugger::GetProgressFromEvent(
-            event, progress_id, completed, total, is_debugger_specific);
-        if (message)
-          dap.SendProgressEvent(progress_id, message, completed, total);
+        lldb::SBStructuredData data =
+            lldb::SBDebugger::GetProgressDataFromEvent(event);
+
+        const uint64_t progress_id =
+            GetUintFromStructuredData(data, "progress_id");
+        const uint64_t completed = GetUintFromStructuredData(data, "completed");
+        const uint64_t total = GetUintFromStructuredData(data, "total");
+        const std::string details =
+            GetStringFromStructuredData(data, "details");
+
+        // If we're only creating and sending on progress event, we send
+        // the title and the detail as a single message.
+        if (completed == 0 && total == 1) {
----------------
clayborg wrote:

restructure as:
```
if (completed == 0) {
  if (total == 1) {
    // This progress is non deterministic and won't get updated until it is completed.
    // Send the "message" which will be the combined title and detail. The only other
    // progress event for thus non deterministic progress will be the completed event
    // So there will be no need to update the detail.
   const std::string message = ...
  } else {
    // This progress is deterministic and will receive updates. On the first event...
 }
}
```

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


More information about the lldb-commits mailing list