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.benn...@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; } } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits