[Lldb-commits] [lldb] [lldb] Add a progress event for executing an expression (PR #119757)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Dec 12 12:56:50 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Adrian Prantl (adrian-prantl)
<details>
<summary>Changes</summary>
Expressions can take arbitrary amounts of time to run, so IDEs might want to be informed about the fact that an expression is currently being executed.
rdar://141253078
---
Full diff: https://github.com/llvm/llvm-project/pull/119757.diff
2 Files Affected:
- (modified) lldb/source/Expression/UserExpression.cpp (+9)
- (added) lldb/test/Shell/Expr/TestExecProgress.test (+6)
``````````diff
diff --git a/lldb/source/Expression/UserExpression.cpp b/lldb/source/Expression/UserExpression.cpp
index f1f69ae1c89b85..aa0516c43d139b 100644
--- a/lldb/source/Expression/UserExpression.cpp
+++ b/lldb/source/Expression/UserExpression.cpp
@@ -14,6 +14,7 @@
#include <string>
#include "lldb/Core/Module.h"
+#include "lldb/Core/Progress.h"
#include "lldb/Expression/DiagnosticManager.h"
#include "lldb/Expression/ExpressionVariable.h"
#include "lldb/Expression/IRExecutionUnit.h"
@@ -424,6 +425,14 @@ UserExpression::Execute(DiagnosticManager &diagnostic_manager,
const EvaluateExpressionOptions &options,
lldb::UserExpressionSP &shared_ptr_to_me,
lldb::ExpressionVariableSP &result_var) {
+ Debugger *debugger =
+ exe_ctx.GetTargetPtr() ? &exe_ctx.GetTargetPtr()->GetDebugger() : nullptr;
+ Progress progress("Running expression",
+ m_options.IsForUtilityExpr()
+ ? "(LLDB utility)"
+ : m_expr_text.substr(0, 12) + "...",
+ {}, debugger);
+
lldb::ExpressionResults expr_result = DoExecute(
diagnostic_manager, exe_ctx, options, shared_ptr_to_me, result_var);
Target *target = exe_ctx.GetTargetPtr();
diff --git a/lldb/test/Shell/Expr/TestExecProgress.test b/lldb/test/Shell/Expr/TestExecProgress.test
new file mode 100644
index 00000000000000..93a8469f18ce06
--- /dev/null
+++ b/lldb/test/Shell/Expr/TestExecProgress.test
@@ -0,0 +1,6 @@
+# RUN: %lldb -s %s | FileCheck %s
+log enable lldb event
+expr 1
+quit
+
+# CHECK: {{title = "Running expression", details = "1}}
``````````
</details>
https://github.com/llvm/llvm-project/pull/119757
More information about the lldb-commits
mailing list