[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