forked from OSchip/llvm-project
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
|