1915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granataimport lldb 2915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 3915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granataclass FooSyntheticProvider: 4915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def __init__(self,valobj,dict): 5915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.valobj = valobj; 6915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.update(); 7915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 8915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def update(self): 9915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.adjust_for_architecture() 10915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 11915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def num_children(self): 12915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return 1; 13915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 14915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def get_child_at_index(self,index): 15915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata if index != 0: 16915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return None; 17915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return self.i_ptr.Dereference(); 18915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 19915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def get_child_index(self,name): 20915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata if name == "*i_ptr": 21915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return 0; 22915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return None; 23915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 24915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata def adjust_for_architecture(self): 25915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.lp64 = (self.valobj.GetTarget().GetProcess().GetAddressByteSize() == 8) 26915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.is_little = (self.valobj.GetTarget().GetProcess().GetByteOrder() == lldb.eByteOrderLittle) 27915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.pointer_size = self.valobj.GetTarget().GetProcess().GetAddressByteSize() 28915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.bar = self.valobj.GetChildMemberWithName('b'); 29915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata self.i_ptr = self.bar.GetChildMemberWithName('i_ptr');