brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 555d4a6 Raw
72 lines · python
1"""2Test SBBreakpoint APIs.3"""4 5import lldb6from lldbsuite.test.decorators import *7from lldbsuite.test.lldbtest import *8from lldbsuite.test import lldbutil9 10 11class BreakpointAPITestCase(TestBase):12    NO_DEBUG_INFO_TESTCASE = True13 14    def test_breakpoint_is_valid(self):15        """Make sure that if an SBBreakpoint gets deleted its IsValid returns false."""16        self.build()17        exe = self.getBuildArtifact("a.out")18 19        # Create a target by the debugger.20        target = self.dbg.CreateTarget(exe)21        self.assertTrue(target, VALID_TARGET)22 23        # Now create a breakpoint on main.c by name 'AFunction'.24        breakpoint = target.BreakpointCreateByName("AFunction", "a.out")25        self.trace("breakpoint:", breakpoint)26        self.assertTrue(27            breakpoint and breakpoint.GetNumLocations() == 1, VALID_BREAKPOINT28        )29 30        # Now delete it:31        did_delete = target.BreakpointDelete(breakpoint.GetID())32        self.assertTrue(did_delete, "Did delete the breakpoint we just created.")33 34        # Make sure we can't find it:35        del_bkpt = target.FindBreakpointByID(breakpoint.GetID())36        self.assertTrue(not del_bkpt, "We did delete the breakpoint.")37 38        # Finally make sure the original breakpoint is no longer valid.39        self.assertTrue(not breakpoint, "Breakpoint we deleted is no longer valid.")40 41    def test_target_delete(self):42        """Make sure that if an SBTarget gets deleted the associated43        Breakpoint's IsValid returns false."""44 45        self.build()46        exe = self.getBuildArtifact("a.out")47 48        # Create a target by the debugger.49        target = self.dbg.CreateTarget(exe)50        self.assertTrue(target, VALID_TARGET)51 52        # Now create a breakpoint on main.c by name 'AFunction'.53        breakpoint = target.BreakpointCreateByName("AFunction", "a.out")54        self.trace("breakpoint:", breakpoint)55        self.assertTrue(56            breakpoint and breakpoint.GetNumLocations() == 1, VALID_BREAKPOINT57        )58        location = breakpoint.GetLocationAtIndex(0)59        self.assertTrue(location.IsValid())60 61        # Test negative index access.62        self.assertTrue(breakpoint.location[-1].IsValid())63 64        # Make sure the breakpoint's target is right:65        self.assertEqual(66            target, breakpoint.GetTarget(), "Breakpoint reports its target correctly"67        )68 69        self.assertTrue(self.dbg.DeleteTarget(target))70        self.assertFalse(breakpoint.IsValid())71        self.assertFalse(location.IsValid())72