1 //===-- SWIG Interface for SBSymbolContextList ------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 namespace lldb { 11 12 %feature("docstring", 13 "Represents a list of symbol context object. See also SBSymbolContext. 14 15 For example (from test/python_api/target/TestTargetAPI.py), 16 17 def find_functions(self, exe_name): 18 '''Exercise SBTaget.FindFunctions() API.''' 19 exe = os.path.join(os.getcwd(), exe_name) 20 21 # Create a target by the debugger. 22 target = self.dbg.CreateTarget(exe) 23 self.assertTrue(target, VALID_TARGET) 24 25 list = lldb.SBSymbolContextList() 26 num = target.FindFunctions('c', lldb.eFunctionNameTypeAuto, False, list) 27 self.assertTrue(num == 1 and list.GetSize() == 1) 28 29 for sc in list: 30 self.assertTrue(sc.GetModule().GetFileSpec().GetFilename() == exe_name) 31 self.assertTrue(sc.GetSymbol().GetName() == 'c') 32 ") SBSymbolContextList; 33 class SBSymbolContextList 34 { 35 public: 36 SBSymbolContextList (); 37 38 SBSymbolContextList (const lldb::SBSymbolContextList& rhs); 39 40 ~SBSymbolContextList (); 41 42 bool 43 IsValid () const; 44 45 uint32_t 46 GetSize() const; 47 48 SBSymbolContext 49 GetContextAtIndex (uint32_t idx); 50 51 void 52 Append (lldb::SBSymbolContext &sc); 53 54 void 55 Append (lldb::SBSymbolContextList &sc_list); 56 57 bool 58 GetDescription (lldb::SBStream &description); 59 60 void 61 Clear(); 62 63 %pythoncode %{ 64 def __len__(self): 65 return int(self.GetSize()) 66 67 def __getitem__(self, key): 68 count = len(self) 69 if type(key) is int: 70 if key < count: 71 return self.GetContextAtIndex(key) 72 else: 73 raise IndexError 74 raise TypeError 75 76 def get_module_array(self): 77 a = [] 78 for i in range(len(self)): 79 obj = self.GetContextAtIndex(i).module 80 if obj: 81 a.append(obj) 82 return a 83 84 def get_compile_unit_array(self): 85 a = [] 86 for i in range(len(self)): 87 obj = self.GetContextAtIndex(i).compile_unit 88 if obj: 89 a.append(obj) 90 return a 91 def get_function_array(self): 92 a = [] 93 for i in range(len(self)): 94 obj = self.GetContextAtIndex(i).function 95 if obj: 96 a.append(obj) 97 return a 98 def get_block_array(self): 99 a = [] 100 for i in range(len(self)): 101 obj = self.GetContextAtIndex(i).block 102 if obj: 103 a.append(obj) 104 return a 105 def get_symbol_array(self): 106 a = [] 107 for i in range(len(self)): 108 obj = self.GetContextAtIndex(i).symbol 109 if obj: 110 a.append(obj) 111 return a 112 def get_line_entry_array(self): 113 a = [] 114 for i in range(len(self)): 115 obj = self.GetContextAtIndex(i).line_entry 116 if obj: 117 a.append(obj) 118 return a 119 __swig_getmethods__["modules"] = get_module_array 120 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.''') 121 122 __swig_getmethods__["compile_units"] = get_compile_unit_array 123 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.''') 124 125 __swig_getmethods__["functions"] = get_function_array 126 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.''') 127 128 __swig_getmethods__["blocks"] = get_block_array 129 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.''') 130 131 __swig_getmethods__["line_entries"] = get_line_entry_array 132 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.''') 133 134 __swig_getmethods__["symbols"] = get_symbol_array 135 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.''') 136 %} 137 138 }; 139 140 } // namespace lldb 141