| """ | |
| 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): | |
| 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" | |
| ) | |
| self.expect_expr("sum(7, 1)", result_type="int", result_value="8") |