| """ |
| Tests expressions evaluation when the breakpoint on module's entry is set. |
| """ |
| |
| import lldb |
| import lldbsuite.test.lldbutil as lldbutil |
| from lldbsuite.test.lldbtest import * |
| |
| class ExprEntryBPTestCase(TestBase): |
| |
| mydir = TestBase.compute_mydir(__file__) |
| |
| NO_DEBUG_INFO_TESTCASE = True |
| |
| def test_expr_entry_bp(self): |
| """Tests expressions evaluation when the breakpoint on module's entry is set.""" |
| self.build() |
| self.main_source_file = lldb.SBFileSpec("main.c") |
| |
| (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, "Set a breakpoint here", self.main_source_file) |
| |
| self.assertEqual(1, bkpt.GetNumLocations()) |
| entry = bkpt.GetLocationAtIndex(0).GetAddress().GetModule().GetObjectFileEntryPointAddress() |
| self.assertTrue(entry.IsValid(), "Can't get a module entry point") |
| |
| entry_bp = target.BreakpointCreateBySBAddress(entry) |
| self.assertTrue(entry_bp.IsValid(), "Can't set a breakpoint on the module entry point") |
| |
| result = target.EvaluateExpression("sum(7, 1)") |
| self.assertTrue(result.IsValid(), "Can't evaluate expression") |
| self.assertEqual(8, result.GetValueAsSigned()) |
| |
| def setUp(self): |
| TestBase.setUp(self) |