xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/ftsp.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
199451b44SJordan Rupprechtimport lldb
299451b44SJordan Rupprecht
399451b44SJordan Rupprechtcounter = 0
499451b44SJordan Rupprecht
599451b44SJordan Rupprecht
699451b44SJordan Rupprechtclass ftsp:
799451b44SJordan Rupprecht    def __init__(self, valobj, dict):
899451b44SJordan Rupprecht        self.valobj = valobj
999451b44SJordan Rupprecht
1099451b44SJordan Rupprecht    def num_children(self):
1199451b44SJordan Rupprecht        if self.char.IsValid():
1299451b44SJordan Rupprecht            return 5
1399451b44SJordan Rupprecht        return 0
1499451b44SJordan Rupprecht
1599451b44SJordan Rupprecht    def get_child_index(self, name):
1699451b44SJordan Rupprecht        return 0
1799451b44SJordan Rupprecht
1899451b44SJordan Rupprecht    def get_child_at_index(self, index):
1999451b44SJordan Rupprecht        if index == 0:
2099451b44SJordan Rupprecht            return self.x.Cast(self.char)
2199451b44SJordan Rupprecht        if index == 4:
2299451b44SJordan Rupprecht            return self.valobj.CreateValueFromExpression(
23*2238dcc3SJonas Devlieghere                str(index), "(char)(" + str(self.count) + ")"
24*2238dcc3SJonas Devlieghere            )
25*2238dcc3SJonas Devlieghere        return self.x.CreateChildAtOffset(str(index), index, self.char)
2699451b44SJordan Rupprecht
2799451b44SJordan Rupprecht    def update(self):
28*2238dcc3SJonas Devlieghere        self.x = self.valobj.GetChildMemberWithName("x")
2999451b44SJordan Rupprecht        self.char = self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar)
3099451b44SJordan Rupprecht        global counter
3199451b44SJordan Rupprecht        self.count = counter
3299451b44SJordan Rupprecht        counter = counter + 1
3399451b44SJordan Rupprecht        return True  # important: if we return False here, or fail to return, the test will fail
3499451b44SJordan Rupprecht
3599451b44SJordan Rupprecht
3699451b44SJordan Rupprechtdef __lldb_init_module(debugger, dict):
3799451b44SJordan Rupprecht    global counter
3899451b44SJordan Rupprecht    counter = 0
39