brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · fc8d64d Raw
55 lines · python
1import lldb2 3 4class fooSynthProvider:5    def __init__(self, valobj, dict):6        self.valobj = valobj7        self.int_type = valobj.GetType().GetBasicType(lldb.eBasicTypeInt)8 9    def num_children(self):10        return 311 12    def get_child_at_index(self, index):13        if index == 0:14            child = self.valobj.GetChildMemberWithName("a")15        if index == 1:16            child = self.valobj.CreateChildAtOffset("fake_a", 1, self.int_type)17        if index == 2:18            child = self.valobj.GetChildMemberWithName("r")19        return child20 21    def get_child_index(self, name):22        if name == "a":23            return 024        if name == "fake_a":25            return 126        return 227 28    def update(self):29        return True30 31 32class wrapfooSynthProvider:33    def __init__(self, valobj, dict):34        self.valobj = valobj35 36    def num_children(self):37        return 138 39    def get_child_at_index(self, index):40        if index == 0:41            return self.valobj.GetChildMemberWithName("ptr")42        if index == 1:43            return self.valobj.GetChildMemberWithName("ptr").Dereference()44        return None45 46    def get_child_index(self, name):47        if name == "ptr":48            return 049        if name == "$$dereference$$":50            return 151        return -152 53    def update(self):54        return True55