| //===-- 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 |