141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- SWIG Interface for SBSymbolContextList ------------------*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| namespace lldb {
 | |
| 
 | |
| %feature("docstring",
 | |
| "Represents a list of symbol context object. See also SBSymbolContext.
 | |
| 
 | |
| For example (from test/python_api/target/TestTargetAPI.py),
 | |
| 
 | |
|     def find_functions(self, exe_name):
 | |
|         '''Exercise SBTaget.FindFunctions() API.'''
 | |
|         exe = os.path.join(os.getcwd(), exe_name)
 | |
| 
 | |
|         # Create a target by the debugger.
 | |
|         target = self.dbg.CreateTarget(exe)
 | |
|         self.assertTrue(target, VALID_TARGET)
 | |
| 
 | |
|         list = lldb.SBSymbolContextList()
 | |
|         num = target.FindFunctions('c', lldb.eFunctionNameTypeAuto, False, list)
 | |
|         self.assertTrue(num == 1 and list.GetSize() == 1)
 | |
| 
 | |
|         for sc in list:
 | |
|             self.assertTrue(sc.GetModule().GetFileSpec().GetFilename() == exe_name)
 | |
|             self.assertTrue(sc.GetSymbol().GetName() == 'c')                
 | |
| ") SBSymbolContextList;
 | |
| class SBSymbolContextList
 | |
| {
 | |
| public:
 | |
|     SBSymbolContextList ();
 | |
| 
 | |
|     SBSymbolContextList (const lldb::SBSymbolContextList& rhs);
 | |
| 
 | |
|     ~SBSymbolContextList ();
 | |
| 
 | |
|     bool
 | |
|     IsValid () const;
 | |
| 
 | |
|     uint32_t
 | |
|     GetSize() const;
 | |
| 
 | |
|     SBSymbolContext
 | |
|     GetContextAtIndex (uint32_t idx);
 | |
| 
 | |
|     void
 | |
|     Append (lldb::SBSymbolContext &sc);
 | |
|     
 | |
|     void
 | |
|     Append (lldb::SBSymbolContextList &sc_list);
 | |
| 
 | |
|     bool
 | |
|     GetDescription (lldb::SBStream &description);
 | |
| 
 | |
|     void
 | |
|     Clear();
 | |
|     
 | |
|     %pythoncode %{
 | |
|         def __len__(self):
 | |
|             return int(self.GetSize())
 | |
| 
 | |
|         def __getitem__(self, key):
 | |
|             count = len(self)
 | |
|             if type(key) is int:
 | |
|                 if key < count:
 | |
|                     return self.GetContextAtIndex(key)
 | |
|                 else:
 | |
|                     raise IndexError
 | |
|             raise TypeError
 | |
|         
 | |
|         def get_module_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).module
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|             
 | |
|         def get_compile_unit_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).compile_unit
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|         def get_function_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).function
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|         def get_block_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).block
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|         def get_symbol_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).symbol
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|         def get_line_entry_array(self):
 | |
|             a = []
 | |
|             for i in range(len(self)):
 | |
|                 obj = self.GetContextAtIndex(i).line_entry
 | |
|                 if obj:
 | |
|                     a.append(obj)
 | |
|             return a
 | |
|         __swig_getmethods__["modules"] = get_module_array
 | |
|         if _newclass: modules = property(get_module_array, None, doc='''Returns a list() of lldb.SBModule objects, one for each module in each SBSymbolContext object in this list.''')
 | |
|         
 | |
|         __swig_getmethods__["compile_units"] = get_compile_unit_array
 | |
|         if _newclass: compile_units = property(get_compile_unit_array, None, doc='''Returns a list() of lldb.SBCompileUnit objects, one for each compile unit in each SBSymbolContext object in this list.''')
 | |
|         
 | |
|         __swig_getmethods__["functions"] = get_function_array
 | |
|         if _newclass: functions = property(get_function_array, None, doc='''Returns a list() of lldb.SBFunction objects, one for each function in each SBSymbolContext object in this list.''')
 | |
|         
 | |
|         __swig_getmethods__["blocks"] = get_block_array
 | |
|         if _newclass: blocks = property(get_block_array, None, doc='''Returns a list() of lldb.SBBlock objects, one for each block in each SBSymbolContext object in this list.''')
 | |
|         
 | |
|         __swig_getmethods__["line_entries"] = get_line_entry_array
 | |
|         if _newclass: line_entries = property(get_line_entry_array, None, doc='''Returns a list() of lldb.SBLineEntry objects, one for each line entry in each SBSymbolContext object in this list.''')
 | |
|         
 | |
|         __swig_getmethods__["symbols"] = get_symbol_array
 | |
|         if _newclass: symbols = property(get_symbol_array, None, doc='''Returns a list() of lldb.SBSymbol objects, one for each symbol in each SBSymbolContext object in this list.''')
 | |
|     %}
 | |
| 
 | |
| };
 | |
| 
 | |
| } // namespace lldb
 |