57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| 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
 |