blob: 25e889499c8362e39af0508450c58032bebb8b97 [file] [log] [blame]
Johnny Chen349f0762011-07-19 01:07:06 +00001//===-- 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
10namespace lldb {
11
12%feature("docstring",
13"Represents a list of symbol context object. See also SBSymbolContext.
14
15For 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;
33class SBSymbolContextList
34{
35public:
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
Greg Clayton5569e642012-02-06 01:44:54 +000052 Append (lldb::SBSymbolContext &sc);
53
54 void
55 Append (lldb::SBSymbolContextList &sc_list);
56
57 bool
58 GetDescription (lldb::SBStream &description);
59
60 void
Johnny Chen349f0762011-07-19 01:07:06 +000061 Clear();
Greg Clayton5569e642012-02-06 01:44:54 +000062
63 %pythoncode %{
64 def __len__(self):
Filipe Cabecinhas1a96ef82012-05-11 20:39:42 +000065 return int(self.GetSize())
Greg Clayton5569e642012-02-06 01:44:54 +000066
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
Greg Clayton5ef31a92012-06-29 22:00:42 +0000120 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000121
122 __swig_getmethods__["compile_units"] = get_compile_unit_array
Greg Clayton5ef31a92012-06-29 22:00:42 +0000123 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000124
125 __swig_getmethods__["functions"] = get_function_array
Greg Clayton5ef31a92012-06-29 22:00:42 +0000126 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000127
128 __swig_getmethods__["blocks"] = get_block_array
Greg Clayton5ef31a92012-06-29 22:00:42 +0000129 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000130
131 __swig_getmethods__["line_entries"] = get_line_entry_array
Greg Clayton5ef31a92012-06-29 22:00:42 +0000132 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000133
134 __swig_getmethods__["symbols"] = get_symbol_array
Greg Clayton5ef31a92012-06-29 22:00:42 +0000135 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.''')
Greg Clayton5569e642012-02-06 01:44:54 +0000136 %}
137
Johnny Chen349f0762011-07-19 01:07:06 +0000138};
139
140} // namespace lldb