| import lldb |
| |
| |
| class fooSynthProvider: |
| def __init__(self, valobj, dict): |
| self.valobj = valobj |
| self.int_type = valobj.GetType().GetBasicType(lldb.eBasicTypeInt) |
| |
| def num_children(self): |
| return 3 |
| |
| def get_child_at_index(self, index): |
| if index == 0: |
| child = self.valobj.GetChildMemberWithName("a") |
| if index == 1: |
| child = self.valobj.CreateChildAtOffset("fake_a", 1, self.int_type) |
| if index == 2: |
| child = self.valobj.GetChildMemberWithName("r") |
| return child |
| |
| def get_child_index(self, name): |
| if name == "a": |
| return 0 |
| if name == "fake_a": |
| return 1 |
| return 2 |
| |
| def update(self): |
| return True |
| |
| |
| class wrapfooSynthProvider: |
| def __init__(self, valobj, dict): |
| self.valobj = valobj |
| |
| def num_children(self): |
| return 1 |
| |
| def get_child_at_index(self, index): |
| if index == 0: |
| return self.valobj.GetChildMemberWithName("ptr") |
| if index == 1: |
| return self.valobj.GetChildMemberWithName("ptr").Dereference() |
| return None |
| |
| def get_child_index(self, name): |
| if name == "ptr": |
| return 0 |
| if name == "$$dereference$$": |
| return 1 |
| return -1 |
| |
| def update(self): |
| return True |