1  import lldb 
 2   
 3   
 5   
 6 -    def __init__(self, value, internal_dict): 
 12   
15   
17          return len(self.values) 
 18   
20          i = 0 
21          for N, value in self.values: 
22              if N == name: 
23                  return i 
24              i += 1 
25          return None 
 26   
29   
31          return len(self.values) > 0 
 32   
34          data = None 
35          type = None 
36          if isinstance(value, int): 
37              data = lldb.SBData.CreateDataFromUInt32Array( 
38                  self.bo, self.ps, [value]) 
39              type = self.value.target.GetBasicType(lldb.eBasicTypeInt) 
40          elif isinstance(value, long): 
41              data = lldb.SBData.CreateDataFromUInt64Array( 
42                  self.bo, self.ps, [value]) 
43              type = self.value.target.GetBasicType(lldb.eBasicTypeLong) 
44          elif isinstance(value, float): 
45              data = lldb.SBData.CreateDataFromDoubleArray( 
46                  self.bo, self.ps, [value]) 
47              type = self.value.target.GetBasicType(lldb.eBasicTypeDouble) 
48          elif isinstance(value, str): 
49              data = lldb.SBData.CreateDataFromCString(self.bo, self.ps, value) 
50              type = self.value.target.GetBasicType( 
51                  lldb.eBasicTypeChar).GetArrayType( 
52                  len(value)) 
53          if (data is not None) and (type is not None): 
54              return self.value.CreateValueFromData(name, data, type) 
55          return None 
 56   
58          if index in self.built_values: 
59              return self.built_values[index] 
60   
61          bv = None 
62   
63          name, value = self.values[index] 
64          bv = self.gen_child(name, value) 
65          self.built_values[index] = bv 
66          return bv 
  67