[Lldb-commits] [lldb] 15f34ff - [lldb] Allow expect_expr without a running target
Raphael Isemann via lldb-commits
lldb-commits at lists.llvm.org
Wed Apr 1 00:39:43 PDT 2020
Author: Raphael Isemann
Date: 2020-04-01T09:39:24+02:00
New Revision: 15f34ff2d8976f9211c6112531355ed5e2a92ea0
URL: https://github.com/llvm/llvm-project/commit/15f34ff2d8976f9211c6112531355ed5e2a92ea0
DIFF: https://github.com/llvm/llvm-project/commit/15f34ff2d8976f9211c6112531355ed5e2a92ea0.diff
LOG: [lldb] Allow expect_expr without a running target
Summary:
If we don't have a current frame then we can still run many expressions
as long as we have an active target. With this patch `expect_expr` directly
calls the target's EvaluateExpression function when there is no current frame.
Reviewers: labath
Reviewed By: labath
Subscribers: JDevlieghere
Differential Revision: https://reviews.llvm.org/D77197
Added:
Modified:
lldb/packages/Python/lldbsuite/test/lldbtest.py
lldb/test/API/commands/expression/call-function/TestCallBuiltinFunction.py
Removed:
################################################################################
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index 966d460ea13d..5058594505f5 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -2414,9 +2414,12 @@ def expect_expr(
# Set the usual default options for normal expressions.
options.SetIgnoreBreakpoints(True)
- options.SetLanguage(frame.GuessLanguage())
- eval_result = frame.EvaluateExpression(expr, options)
+ if self.frame().IsValid():
+ options.SetLanguage(frame.GuessLanguage())
+ eval_result = self.frame().EvaluateExpression(expr, options)
+ else:
+ eval_result = self.target().EvaluateExpression(expr, options)
if not eval_result.GetError().Success():
self.assertTrue(eval_result.GetError().Success(),
diff --git a/lldb/test/API/commands/expression/call-function/TestCallBuiltinFunction.py b/lldb/test/API/commands/expression/call-function/TestCallBuiltinFunction.py
index 31478884ad7d..55ba2717c013 100644
--- a/lldb/test/API/commands/expression/call-function/TestCallBuiltinFunction.py
+++ b/lldb/test/API/commands/expression/call-function/TestCallBuiltinFunction.py
@@ -17,24 +17,10 @@ class ExprCommandCallBuiltinFunction(TestBase):
# Builtins are expanded by Clang, so debug info shouldn't matter.
NO_DEBUG_INFO_TESTCASE = True
- def setUp(self):
- TestBase.setUp(self)
- # Find the line number to break for main.c.
- self.line = line_number(
- 'main.cpp',
- '// Please test these expressions while stopped at this line:')
-
def test(self):
self.build()
- # Set breakpoint in main and run exe
- self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
- lldbutil.run_break_set_by_file_and_line(
- self, "main.cpp", self.line, num_expected_locations=-1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # Test
diff erent builtin functions.
+ target = self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
self.expect_expr("__builtin_isinf(0.0f)", result_type="int", result_value="0")
self.expect_expr("__builtin_isnormal(0.0f)", result_type="int", result_value="0")
More information about the lldb-commits
mailing list