[Lldb-commits] [lldb] [LLDB-DAP] SBDebugger don't prefix title on progress updates (PR #124648)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Feb 7 13:29:40 PST 2025
================
@@ -427,14 +452,27 @@ 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);
+
+ uint64_t progress_id = GetUintFromStructuredData(data, "progress_id");
+ uint64_t completed = GetUintFromStructuredData(data, "completed");
+ uint64_t total = GetUintFromStructuredData(data, "total");
+ std::string message;
+ // Include the title on the first event.
+ if (completed == 0) {
+ std::string title = GetStringFromStructuredData(data, "title");
+ message += title;
+ message += ": ";
+ }
+
+ std::string details = GetStringFromStructuredData(data, "details");
+ message += details;
+ // Verbose check, but we get -1 for the uint64 on failure to read
+ // so we check everything before broadcasting an event.
+ if (message.length() > 0 && progress_id > 0 && total >= 0 &&
+ completed >= 0)
----------------
JDevlieghere wrote:
`total` and `completed` are unsigned so isn't `total >= 0 && completed >= 0` always true?
https://github.com/llvm/llvm-project/pull/124648
More information about the lldb-commits
mailing list