brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 6b25998 Raw
63 lines · python
1"""2Set the contents of variables and registers using raw data3"""4 5 6import lldb7from lldbsuite.test.decorators import *8from lldbsuite.test.lldbtest import *9from lldbsuite.test import lldbutil10 11 12class SetDataTestCase(TestBase):13    @add_test_categories(["objc"])14    def test_set_data(self):15        """Test setting the contents of variables and registers using raw data."""16        self.build()17        exe = self.getBuildArtifact("a.out")18        self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)19 20        self.runCmd("br s -p First")21        self.runCmd("br s -p Second")22 23        self.runCmd("run", RUN_SUCCEEDED)24 25        self.expect("expression myFoo.x", VARIABLES_DISPLAYED_CORRECTLY, substrs=["2"])26 27        process = self.dbg.GetSelectedTarget().GetProcess()28        frame = process.GetSelectedThread().GetFrameAtIndex(0)29 30        x = frame.FindVariable("myFoo").GetChildMemberWithName("x")31 32        my_data = lldb.SBData.CreateDataFromSInt32Array(lldb.eByteOrderLittle, 8, [4])33        err = lldb.SBError()34 35        self.assertTrue(x.SetData(my_data, err))36 37        self.runCmd("continue")38 39        self.expect("expression myFoo.x", VARIABLES_DISPLAYED_CORRECTLY, substrs=["4"])40 41        frame = process.GetSelectedThread().GetFrameAtIndex(0)42 43        x = frame.FindVariable("string")44 45        if process.GetAddressByteSize() == 8:46            my_data = lldb.SBData.CreateDataFromUInt64Array(47                process.GetByteOrder(), 8, [0]48            )49        else:50            my_data = lldb.SBData.CreateDataFromUInt32Array(51                process.GetByteOrder(), 4, [0]52            )53 54        err = lldb.SBError()55 56        self.assertTrue(x.SetData(my_data, err))57 58        self.expect(59            "fr var -d run-target string",60            VARIABLES_DISPLAYED_CORRECTLY,61            substrs=["NSString *", "nil"],62        )63