brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 64a4b20 Raw
51 lines · python
1import lldb2from lldbsuite.test.decorators import *3from lldbsuite.test.lldbtest import *4from lldbsuite.test import lldbutil5 6 7class ValueAPIEmptyClassTestCase(TestBase):8    def test(self):9        self.build()10        exe = self.getBuildArtifact("a.out")11        line = line_number("main.cpp", "// Break at this line")12 13        # Create a target by the debugger.14        target = self.dbg.CreateTarget(exe)15        self.assertTrue(target, VALID_TARGET)16 17        # Create the breakpoint inside function 'main'.18        breakpoint = target.BreakpointCreateByLocation("main.cpp", line)19        self.assertTrue(breakpoint, VALID_BREAKPOINT)20 21        # Now launch the process, and do not stop at entry point.22        process = target.LaunchSimple(None, None, self.get_process_working_directory())23        self.assertTrue(process, PROCESS_IS_VALID)24 25        # Get Frame #0.26        self.assertState(process.GetState(), lldb.eStateStopped)27        thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint)28        self.assertTrue(29            thread.IsValid(),30            "There should be a thread stopped due to breakpoint condition",31        )32        frame0 = thread.GetFrameAtIndex(0)33 34        # Verify that we can access to a frame variable with an empty class type35        e = frame0.FindVariable("e")36        self.assertTrue(e.IsValid(), VALID_VARIABLE)37        self.DebugSBValue(e)38        self.assertEqual(e.GetNumChildren(), 0)39 40        # Verify that we can acces to a frame variable what is a pointer to an41        # empty class42        ep = frame0.FindVariable("ep")43        self.assertTrue(ep.IsValid(), VALID_VARIABLE)44        self.DebugSBValue(ep)45 46        # Verify that we can dereference a pointer to an empty class47        epd = ep.Dereference()48        self.assertTrue(epd.IsValid(), VALID_VARIABLE)49        self.DebugSBValue(epd)50        self.assertEqual(epd.GetNumChildren(), 0)51