blob: c6c12fc0efcfe9c95d7366ff57141171d7b4c528 [file] [log] [blame]
Caroline Ticee49ec182010-09-22 23:01:29 +00001
2%extend lldb::SBAddress {
Greg Clayton0a19a1b2012-02-04 02:27:34 +00003 PyObject *lldb::SBAddress::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +00004 lldb::SBStream description;
5 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +00006 const char *desc = description.GetData();
7 size_t desc_len = description.GetSize();
8 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
9 --desc_len;
10 if (desc_len > 0)
11 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000012 else
13 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +000014 }
15}
16%extend lldb::SBBlock {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000017 PyObject *lldb::SBBlock::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +000018 lldb::SBStream description;
19 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +000020 const char *desc = description.GetData();
21 size_t desc_len = description.GetSize();
22 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
23 --desc_len;
24 if (desc_len > 0)
25 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000026 else
27 return PyString_FromString("");
28
Caroline Ticee49ec182010-09-22 23:01:29 +000029 }
30}
31%extend lldb::SBBreakpoint {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000032 PyObject *lldb::SBBreakpoint::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +000033 lldb::SBStream description;
Greg Claytond8c62532010-10-07 04:19:01 +000034 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +000035 const char *desc = description.GetData();
36 size_t desc_len = description.GetSize();
37 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
38 --desc_len;
39 if (desc_len > 0)
40 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000041 else
42 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +000043 }
44}
45%extend lldb::SBBreakpointLocation {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000046 PyObject *lldb::SBBreakpointLocation::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +000047 lldb::SBStream description;
Johnny Chenbdc36bd2011-04-25 20:23:05 +000048 $self->GetDescription (description, lldb::eDescriptionLevelFull);
Greg Clayton394da8e2012-02-01 02:30:27 +000049 const char *desc = description.GetData();
50 size_t desc_len = description.GetSize();
51 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
52 --desc_len;
53 if (desc_len > 0)
54 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000055 else
56 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +000057 }
58}
59%extend lldb::SBCommandReturnObject {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000060 PyObject *lldb::SBCommandReturnObject::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +000061 lldb::SBStream description;
62 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +000063 const char *desc = description.GetData();
64 size_t desc_len = description.GetSize();
65 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
66 --desc_len;
67 if (desc_len > 0)
68 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000069 else
70 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +000071 }
72}
73%extend lldb::SBCompileUnit {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000074 PyObject *lldb::SBCompileUnit::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +000075 lldb::SBStream description;
76 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +000077 const char *desc = description.GetData();
78 size_t desc_len = description.GetSize();
79 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
80 --desc_len;
81 if (desc_len > 0)
82 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000083 else
84 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +000085 }
86}
Enrico Granata91544802011-09-06 19:20:51 +000087%extend lldb::SBData {
Greg Clayton0a19a1b2012-02-04 02:27:34 +000088 PyObject *lldb::SBData::__str__ (){
Enrico Granata91544802011-09-06 19:20:51 +000089 lldb::SBStream description;
90 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +000091 const char *desc = description.GetData();
92 size_t desc_len = description.GetSize();
93 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
94 --desc_len;
95 if (desc_len > 0)
96 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +000097 else
98 return PyString_FromString("");
Enrico Granata91544802011-09-06 19:20:51 +000099 }
100}
Caroline Ticee49ec182010-09-22 23:01:29 +0000101%extend lldb::SBDebugger {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000102 PyObject *lldb::SBDebugger::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000103 lldb::SBStream description;
104 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000105 const char *desc = description.GetData();
106 size_t desc_len = description.GetSize();
107 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
108 --desc_len;
109 if (desc_len > 0)
110 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000111 else
112 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000113 }
114}
115%extend lldb::SBError {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000116 PyObject *lldb::SBError::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000117 lldb::SBStream description;
118 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000119 const char *desc = description.GetData();
120 size_t desc_len = description.GetSize();
121 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
122 --desc_len;
123 if (desc_len > 0)
124 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000125 else
126 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000127 }
128}
129%extend lldb::SBFileSpec {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000130 PyObject *lldb::SBFileSpec::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000131 lldb::SBStream description;
132 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000133 const char *desc = description.GetData();
134 size_t desc_len = description.GetSize();
135 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
136 --desc_len;
137 if (desc_len > 0)
138 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000139 else
140 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000141 }
142}
143%extend lldb::SBFrame {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000144 PyObject *lldb::SBFrame::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000145 lldb::SBStream description;
146 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000147 const char *desc = description.GetData();
148 size_t desc_len = description.GetSize();
149 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
150 --desc_len;
151 if (desc_len > 0)
152 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000153 else
154 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000155 }
156}
157%extend lldb::SBFunction {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000158 PyObject *lldb::SBFunction::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000159 lldb::SBStream description;
160 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000161 const char *desc = description.GetData();
162 size_t desc_len = description.GetSize();
163 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
164 --desc_len;
165 if (desc_len > 0)
166 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000167 else
168 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000169 }
170}
Greg Clayton5c4c7462010-10-06 03:09:58 +0000171%extend lldb::SBInstruction {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000172 PyObject *lldb::SBInstruction::__str__ (){
Greg Clayton5c4c7462010-10-06 03:09:58 +0000173 lldb::SBStream description;
174 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000175 const char *desc = description.GetData();
176 size_t desc_len = description.GetSize();
177 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
178 --desc_len;
179 if (desc_len > 0)
180 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000181 else
182 return PyString_FromString("");
Greg Clayton5c4c7462010-10-06 03:09:58 +0000183 }
184}
185%extend lldb::SBInstructionList {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000186 PyObject *lldb::SBInstructionList::__str__ (){
Greg Clayton5c4c7462010-10-06 03:09:58 +0000187 lldb::SBStream description;
188 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000189 const char *desc = description.GetData();
190 size_t desc_len = description.GetSize();
191 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
192 --desc_len;
193 if (desc_len > 0)
194 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000195 else
196 return PyString_FromString("");
Greg Clayton5c4c7462010-10-06 03:09:58 +0000197 }
198}
Caroline Ticee49ec182010-09-22 23:01:29 +0000199%extend lldb::SBLineEntry {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000200 PyObject *lldb::SBLineEntry::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000201 lldb::SBStream description;
202 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000203 const char *desc = description.GetData();
204 size_t desc_len = description.GetSize();
205 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
206 --desc_len;
207 if (desc_len > 0)
208 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000209 else
210 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000211 }
212}
213%extend lldb::SBModule {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000214 PyObject *lldb::SBModule::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000215 lldb::SBStream description;
216 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000217 const char *desc = description.GetData();
218 size_t desc_len = description.GetSize();
219 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
220 --desc_len;
221 if (desc_len > 0)
222 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000223 else
224 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000225 }
226}
227%extend lldb::SBProcess {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000228 PyObject *lldb::SBProcess::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000229 lldb::SBStream description;
230 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000231 const char *desc = description.GetData();
232 size_t desc_len = description.GetSize();
233 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
234 --desc_len;
235 if (desc_len > 0)
236 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000237 else
238 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000239 }
240}
Greg Clayton15ef51e2011-09-24 05:04:40 +0000241%extend lldb::SBSection {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000242 PyObject *lldb::SBSection::__str__ (){
Greg Clayton15ef51e2011-09-24 05:04:40 +0000243 lldb::SBStream description;
244 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000245 const char *desc = description.GetData();
246 size_t desc_len = description.GetSize();
247 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
248 --desc_len;
249 if (desc_len > 0)
250 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000251 else
252 return PyString_FromString("");
Greg Clayton15ef51e2011-09-24 05:04:40 +0000253 }
254}
Caroline Ticee49ec182010-09-22 23:01:29 +0000255%extend lldb::SBSymbol {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000256 PyObject *lldb::SBSymbol::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000257 lldb::SBStream description;
258 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000259 const char *desc = description.GetData();
260 size_t desc_len = description.GetSize();
261 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
262 --desc_len;
263 if (desc_len > 0)
264 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000265 else
266 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000267 }
268}
269%extend lldb::SBSymbolContext {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000270 PyObject *lldb::SBSymbolContext::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000271 lldb::SBStream description;
272 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000273 const char *desc = description.GetData();
274 size_t desc_len = description.GetSize();
275 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
276 --desc_len;
277 if (desc_len > 0)
278 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000279 else
280 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000281 }
282}
283%extend lldb::SBTarget {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000284 PyObject *lldb::SBTarget::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000285 lldb::SBStream description;
Caroline Tice7826c882010-10-26 03:11:13 +0000286 $self->GetDescription (description, lldb::eDescriptionLevelBrief);
Greg Clayton394da8e2012-02-01 02:30:27 +0000287 const char *desc = description.GetData();
288 size_t desc_len = description.GetSize();
289 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
290 --desc_len;
291 if (desc_len > 0)
292 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000293 else
294 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000295 }
296}
Greg Clayton96154be2011-11-13 06:57:31 +0000297%extend lldb::SBType {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000298 PyObject *lldb::SBType::__str__ (){
Greg Clayton96154be2011-11-13 06:57:31 +0000299 lldb::SBStream description;
300 $self->GetDescription (description, lldb::eDescriptionLevelBrief);
Greg Clayton394da8e2012-02-01 02:30:27 +0000301 const char *desc = description.GetData();
302 size_t desc_len = description.GetSize();
303 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
304 --desc_len;
305 if (desc_len > 0)
306 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000307 else
308 return PyString_FromString("");
Greg Clayton96154be2011-11-13 06:57:31 +0000309 }
310}
311%extend lldb::SBTypeMember {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000312 PyObject *lldb::SBTypeMember::__str__ (){
Greg Clayton96154be2011-11-13 06:57:31 +0000313 lldb::SBStream description;
314 $self->GetDescription (description, lldb::eDescriptionLevelBrief);
Greg Clayton394da8e2012-02-01 02:30:27 +0000315 const char *desc = description.GetData();
316 size_t desc_len = description.GetSize();
317 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
318 --desc_len;
319 if (desc_len > 0)
320 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000321 else
322 return PyString_FromString("");
Greg Clayton96154be2011-11-13 06:57:31 +0000323 }
324}
Caroline Ticee49ec182010-09-22 23:01:29 +0000325%extend lldb::SBThread {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000326 PyObject *lldb::SBThread::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000327 lldb::SBStream description;
328 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000329 const char *desc = description.GetData();
330 size_t desc_len = description.GetSize();
331 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
332 --desc_len;
333 if (desc_len > 0)
334 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000335 else
336 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000337 }
338}
339%extend lldb::SBValue {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000340 PyObject *lldb::SBValue::__str__ (){
Caroline Ticee49ec182010-09-22 23:01:29 +0000341 lldb::SBStream description;
342 $self->GetDescription (description);
Greg Clayton394da8e2012-02-01 02:30:27 +0000343 const char *desc = description.GetData();
344 size_t desc_len = description.GetSize();
345 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
346 --desc_len;
347 if (desc_len > 0)
348 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000349 else
350 return PyString_FromString("");
Caroline Ticee49ec182010-09-22 23:01:29 +0000351 }
352}
Greg Claytond62b9c12012-02-03 07:02:37 +0000353%extend lldb::SBValueList {
354 PyObject *lldb::SBValueList::__repr__ (){
355 lldb::SBStream description;
356 const size_t n = $self->GetSize();
357 if (n)
358 {
359 for (size_t i=0; i<n; ++i)
360 $self->GetValueAtIndex(i).GetDescription(description);
361 }
362 else
363 {
364 description.Printf("<empty> lldb.SBValueList()");
365 }
366 const char *desc = description.GetData();
367 size_t desc_len = description.GetSize();
368 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
369 --desc_len;
370 if (desc_len > 0)
371 return PyString_FromStringAndSize (desc, desc_len);
372 return Py_None;
373 }
374}
Greg Clayton1fa6b3d2011-10-13 18:08:26 +0000375%extend lldb::SBWatchpoint {
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000376 PyObject *lldb::SBWatchpoint::__str__ (){
Johnny Chen092bd152011-09-27 01:19:20 +0000377 lldb::SBStream description;
378 $self->GetDescription (description, lldb::eDescriptionLevelVerbose);
Greg Clayton394da8e2012-02-01 02:30:27 +0000379 const char *desc = description.GetData();
380 size_t desc_len = description.GetSize();
381 if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
382 --desc_len;
383 if (desc_len > 0)
384 return PyString_FromStringAndSize (desc, desc_len);
Greg Clayton0a19a1b2012-02-04 02:27:34 +0000385 else
386 return PyString_FromString("");
Johnny Chen092bd152011-09-27 01:19:20 +0000387 }
388}
Caroline Ticee49ec182010-09-22 23:01:29 +0000389
Greg Clayton9b8ff512012-02-01 01:46:19 +0000390%pythoncode %{
391
392class value(object):
393 '''A class designed to wrap lldb.SBValue() objects so the resulting object
394 can be used as a variable would be in code. So if you have a Point structure
395 variable in your code in the current frame named "pt", you can initialize an instance
396 of this class with it:
397
398 pt = lldb.value(lldb.frame.FindVariable("pt"))
399 print pt
400 print pt.x
401 print pt.y
402
403 pt = lldb.value(lldb.frame.FindVariable("rectangle_array"))
404 print rectangle_array[12]
405 print rectangle_array[5].origin.x'''
406 def __init__(self, sbvalue):
407 self.sbvalue = sbvalue
408
409 def __nonzero__(self):
410 return self.sbvalue.__nonzero__()
411
Greg Clayton9b8ff512012-02-01 01:46:19 +0000412 def __str__(self):
413 return self.sbvalue.__str__()
414
415 def __getitem__(self, key):
416 # Allow array access if this value has children...
417 if type(key) is int:
418 return value(self.sbvalue.GetValueForExpressionPath("[%i]" % key))
419 raise TypeError
420
421 def __getattr__(self, name):
422 child_sbvalue = self.sbvalue.GetChildMemberWithName (name)
423 if child_sbvalue:
424 return value(child_sbvalue)
425 raise AttributeError
426
427 def __add__(self, other):
428 return int(self) + int(other)
429
430 def __sub__(self, other):
431 return int(self) - int(other)
432
433 def __mul__(self, other):
434 return int(self) * int(other)
435
436 def __floordiv__(self, other):
437 return int(self) // int(other)
438
439 def __mod__(self, other):
440 return int(self) % int(other)
441
442 def __divmod__(self, other):
443 return int(self) % int(other)
444
445 def __pow__(self, other):
446 return int(self) ** int(other)
447
448 def __lshift__(self, other):
449 return int(self) << int(other)
450
451 def __rshift__(self, other):
452 return int(self) >> int(other)
453
454 def __and__(self, other):
455 return int(self) & int(other)
456
457 def __xor__(self, other):
458 return int(self) ^ int(other)
459
460 def __or__(self, other):
461 return int(self) | int(other)
462
463 def __div__(self, other):
464 return int(self) / int(other)
465
466 def __truediv__(self, other):
467 return int(self) / int(other)
468
469 def __iadd__(self, other):
470 result = self.__add__(other)
471 self.sbvalue.SetValueFromCString (str(result))
472 return result
473
474 def __isub__(self, other):
475 result = self.__sub__(other)
476 self.sbvalue.SetValueFromCString (str(result))
477 return result
478
479 def __imul__(self, other):
480 result = self.__mul__(other)
481 self.sbvalue.SetValueFromCString (str(result))
482 return result
483
484 def __idiv__(self, other):
485 result = self.__div__(other)
486 self.sbvalue.SetValueFromCString (str(result))
487 return result
488
489 def __itruediv__(self, other):
490 result = self.__truediv__(other)
491 self.sbvalue.SetValueFromCString (str(result))
492 return result
493
494 def __ifloordiv__(self, other):
495 result = self.__floordiv__(self, other)
496 self.sbvalue.SetValueFromCString (str(result))
497 return result
498
499 def __imod__(self, other):
500 result = self.__and__(self, other)
501 self.sbvalue.SetValueFromCString (str(result))
502 return result
503
504 def __ipow__(self, other):
505 result = self.__pow__(self, other)
506 self.sbvalue.SetValueFromCString (str(result))
507 return result
508
509 def __ipow__(self, other, modulo):
510 result = self.__pow__(self, other, modulo)
511 self.sbvalue.SetValueFromCString (str(result))
512 return result
513
514 def __ilshift__(self, other):
515 result = self.__lshift__(other)
516 self.sbvalue.SetValueFromCString (str(result))
517 return result
518
519 def __irshift__(self, other):
520 result = self.__rshift__(other)
521 self.sbvalue.SetValueFromCString (str(result))
522 return result
523
524 def __iand__(self, other):
525 result = self.__and__(self, other)
526 self.sbvalue.SetValueFromCString (str(result))
527 return result
528
529 def __ixor__(self, other):
530 result = self.__xor__(self, other)
531 self.sbvalue.SetValueFromCString (str(result))
532 return result
533
534 def __ior__(self, other):
535 result = self.__ior__(self, other)
536 self.sbvalue.SetValueFromCString (str(result))
537 return result
538
539 def __neg__(self):
540 return -int(self)
541
542 def __pos__(self):
543 return +int(self)
544
545 def __abs__(self):
546 return abs(int(self))
547
548 def __invert__(self):
549 return ~int(self)
550
551 def __complex__(self):
552 return complex (int(self))
553
554 def __int__(self):
555 return self.sbvalue.GetValueAsSigned()
556
557 def __long__(self):
558 return self.sbvalue.GetValueAsSigned()
559
560 def __float__(self):
561 return float (self.sbvalue.GetValueAsSigned())
562
563 def __oct__(self):
Greg Clayton1ea58022012-02-02 00:12:47 +0000564 return '0%o' % self.sbvalue.GetValueAsUnsigned()
Greg Clayton9b8ff512012-02-01 01:46:19 +0000565
566 def __hex__(self):
Greg Clayton1ea58022012-02-02 00:12:47 +0000567 return '0x%x' % self.sbvalue.GetValueAsUnsigned()
Greg Clayton9b8ff512012-02-01 01:46:19 +0000568
Greg Clayton1ea58022012-02-02 00:12:47 +0000569 def __eq__(self, other):
570 return self.sbvalue.GetValueAsUnsigned() == self.sbvalue.GetValueAsUnsigned()
571
572 def __neq__(self, other):
573 return not self.__eq__(other)
Greg Clayton9b8ff512012-02-01 01:46:19 +0000574%}
575