[Lldb-commits] [lldb] 877723b - [lldb/Expression] Improve interpreter error message with a non-running target
Med Ismail Bennani via lldb-commits
lldb-commits at lists.llvm.org
Tue Jan 14 04:07:15 PST 2020
Author: Med Ismail Bennani
Date: 2020-01-14T13:06:58+01:00
New Revision: 877723b7ce813d25fc4a358b7d2cb90468733a72
URL: https://github.com/llvm/llvm-project/commit/877723b7ce813d25fc4a358b7d2cb90468733a72
DIFF: https://github.com/llvm/llvm-project/commit/877723b7ce813d25fc4a358b7d2cb90468733a72.diff
LOG: [lldb/Expression] Improve interpreter error message with a non-running target
When trying to interpret an expression with a function call, if the
process hasn't been launched, the expression fails to be interpreted
and the user gets the following error message:
```error: Can't run the expression locally```
This message doesn't explain why the expression failed to be
interpreted, that's why this patch improves the error message that is
displayed when trying to run an expression while no process is running.
rdar://11991708
Differential Revision: https://reviews.llvm.org/D72510
Signed-off-by: Med Ismail Bennani <medismail.bennani at gmail.com>
Added:
Modified:
lldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
Removed:
################################################################################
diff --git a/lldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py b/lldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py
index 825e0be5b69d..c70e90e7a26f 100644
--- a/lldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py
+++ b/lldb/packages/Python/lldbsuite/test/commands/expression/dont_allow_jit/TestAllowJIT.py
@@ -35,7 +35,7 @@ def expr_cmd_test(self):
"Set a breakpoint here", self.main_source_file)
frame = thread.GetFrameAtIndex(0)
-
+
# First make sure we can call the function with
interp = self.dbg.GetCommandInterpreter()
self.expect("expr --allow-jit 1 -- call_me(10)",
@@ -43,8 +43,8 @@ def expr_cmd_test(self):
# Now make sure it fails with the "can't IR interpret message" if allow-jit is false:
self.expect("expr --allow-jit 0 -- call_me(10)",
error=True,
- substrs = ["Can't run the expression locally"])
-
+ substrs = ["Can't evaluate the expression without a running target"])
+
def expr_options_test(self):
(target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self,
"Set a breakpoint here", self.main_source_file)
@@ -69,7 +69,7 @@ def expr_options_test(self):
# Again use it and ensure we fail:
result = frame.EvaluateExpression("call_me(10)", options)
self.assertTrue(result.GetError().Fail(), "expression failed with no JIT")
- self.assertTrue("Can't run the expression locally" in result.GetError().GetCString(), "Got right error")
+ self.assertTrue("Can't evaluate the expression without a running target" in result.GetError().GetCString(), "Got right error")
# Finally set the allow JIT value back to true and make sure that works:
options.SetAllowJIT(True)
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
index dfd3e0e6e834..8abd14942885 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
@@ -1258,8 +1258,9 @@ lldb_private::Status ClangExpressionParser::PrepareForExecution(
interpret_error, interpret_function_calls);
if (!can_interpret && execution_policy == eExecutionPolicyNever) {
- err.SetErrorStringWithFormat("Can't run the expression locally: %s",
- interpret_error.AsCString());
+ err.SetErrorStringWithFormat(
+ "Can't evaluate the expression without a running target due to: %s",
+ interpret_error.AsCString());
return err;
}
}
More information about the lldb-commits
mailing list