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