2 Set the contents of variables and registers using raw data
5 from __future__ import print_function
11 from lldbsuite.test.decorators import *
12 from lldbsuite.test.lldbtest import *
13 from lldbsuite.test import lldbutil
16 class SetDataTestCase(TestBase):
18 mydir = TestBase.compute_mydir(__file__)
21 def test_set_data(self):
22 """Test setting the contents of variables and registers using raw data."""
24 exe = os.path.join(os.getcwd(), "a.out")
25 self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
27 self.runCmd("br s -p First")
28 self.runCmd("br s -p Second")
30 self.runCmd("run", RUN_SUCCEEDED)
32 self.expect("p myFoo.x", VARIABLES_DISPLAYED_CORRECTLY,
35 process = self.dbg.GetSelectedTarget().GetProcess()
36 frame = process.GetSelectedThread().GetFrameAtIndex(0)
38 x = frame.FindVariable("myFoo").GetChildMemberWithName("x")
40 my_data = lldb.SBData.CreateDataFromSInt32Array(
41 lldb.eByteOrderLittle, 8, [4])
44 self.assertTrue(x.SetData(my_data, err))
46 self.runCmd("continue")
48 self.expect("p myFoo.x", VARIABLES_DISPLAYED_CORRECTLY,
51 frame = process.GetSelectedThread().GetFrameAtIndex(0)
53 x = frame.FindVariable("string")
55 if process.GetAddressByteSize() == 8:
56 my_data = lldb.SBData.CreateDataFromUInt64Array(
57 process.GetByteOrder(), 8, [0])
59 my_data = lldb.SBData.CreateDataFromUInt32Array(
60 process.GetByteOrder(), 4, [0])
64 self.assertTrue(x.SetData(my_data, err))
67 "fr var -d run-target string",
68 VARIABLES_DISPLAYED_CORRECTLY,