[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:50 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) {
+          const std::string message =
+              GetStringFromStructuredData(data, "message");
+          dap.SendProgressEvent(progress_id, message.c_str(), completed, total);
+        } else if (completed == 0) {
+          // On the first event, send just the title which will be captured by
+          // DAP Then if details is not empty, send a second event with the
+          // detail.
----------------
clayborg wrote:

Lets explain this better so any others making modifications will know what is going on. Make it clear that the first string we send to VS code when creating a new progress will be copied into the progress window title, and any subsequent detail strings will get appended to the initial title we provide to VS code.

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


More information about the lldb-commits mailing list