1 STRING_EXTENSION_OUTSIDE
(SBData
)
7 return self.GetByteSize
()
9 class read_data_helper
:
10 def __init__
(self
, sbdata
, readerfunc
, item_size
):
12 self.readerfunc
= readerfunc
13 self.item_size
= item_size
14 def __getitem__
(self
,key
):
15 if isinstance
(key
,slice
):
17 for x in range
(*key.indices
(self.__len__
())):
18 list.append
(self.__getitem__
(x
))
20 if not
(isinstance
(key
, int
)):
21 raise TypeError
('must be int'
)
22 key
= key
* self.item_size # SBData uses byte-based indexes
, but we want to use itemsize-based indexes here
24 my_data
= self.readerfunc
(self.sbdata
,error
,key
)
26 raise IndexError
(error.GetCString
())
30 return int
(self.sbdata.GetByteSize
()/self.item_size
)
32 return self
[0:len
(self
)]
35 def CreateDataFromInt
(cls
, value
, size
= None
, target
= None
, ptr_size
= None
, endian
= None
):
37 lldbmodule
= sys.modules
[cls.__module__
]
38 lldbdict
= lldbmodule.__dict__
39 if 'target' in lldbdict
:
40 lldbtarget
= lldbdict
['target'
]
43 if target is None and lldbtarget is not None and lldbtarget.IsValid
():
46 if target and target.IsValid
():
47 ptr_size
= target.addr_size
51 if target and target.IsValid
():
52 endian
= target.byte_order
54 endian
= lldbdict
['eByteOrderLittle'
]
56 if value
> 2147483647:
58 elif value
< -2147483648:
60 elif value
> 4294967295:
66 return SBData
().CreateDataFromSInt32Array
(endian
, ptr_size
, [value
])
67 return SBData
().CreateDataFromUInt32Array
(endian
, ptr_size
, [value
])
70 return SBData
().CreateDataFromSInt64Array
(endian
, ptr_size
, [value
])
71 return SBData
().CreateDataFromUInt64Array
(endian
, ptr_size
, [value
])
74 def _make_helper
(self
, sbdata
, getfunc
, itemsize
):
75 return self.read_data_helper
(sbdata
, getfunc
, itemsize
)
77 def _make_helper_uint8
(self
):
78 return self._make_helper
(self
, SBData.GetUnsignedInt8
, 1)
80 def _make_helper_uint16
(self
):
81 return self._make_helper
(self
, SBData.GetUnsignedInt16
, 2)
83 def _make_helper_uint32
(self
):
84 return self._make_helper
(self
, SBData.GetUnsignedInt32
, 4)
86 def _make_helper_uint64
(self
):
87 return self._make_helper
(self
, SBData.GetUnsignedInt64
, 8)
89 def _make_helper_sint8
(self
):
90 return self._make_helper
(self
, SBData.GetSignedInt8
, 1)
92 def _make_helper_sint16
(self
):
93 return self._make_helper
(self
, SBData.GetSignedInt16
, 2)
95 def _make_helper_sint32
(self
):
96 return self._make_helper
(self
, SBData.GetSignedInt32
, 4)
98 def _make_helper_sint64
(self
):
99 return self._make_helper
(self
, SBData.GetSignedInt64
, 8)
101 def _make_helper_float
(self
):
102 return self._make_helper
(self
, SBData.GetFloat
, 4)
104 def _make_helper_double
(self
):
105 return self._make_helper
(self
, SBData.GetDouble
, 8)
107 def _read_all_uint8
(self
):
108 return self._make_helper_uint8
().all
()
110 def _read_all_uint16
(self
):
111 return self._make_helper_uint16
().all
()
113 def _read_all_uint32
(self
):
114 return self._make_helper_uint32
().all
()
116 def _read_all_uint64
(self
):
117 return self._make_helper_uint64
().all
()
119 def _read_all_sint8
(self
):
120 return self._make_helper_sint8
().all
()
122 def _read_all_sint16
(self
):
123 return self._make_helper_sint16
().all
()
125 def _read_all_sint32
(self
):
126 return self._make_helper_sint32
().all
()
128 def _read_all_sint64
(self
):
129 return self._make_helper_sint64
().all
()
131 def _read_all_float
(self
):
132 return self._make_helper_float
().all
()
134 def _read_all_double
(self
):
135 return self._make_helper_double
().all
()
137 uint8
= property
(_make_helper_uint8
, None
, doc
='''A read only property that returns an array-like object out of which you can read uint8 values.'''
)
138 uint16
= property
(_make_helper_uint16
, None
, doc
='''A read only property that returns an array-like object out of which you can read uint16 values.'''
)
139 uint32
= property
(_make_helper_uint32
, None
, doc
='''A read only property that returns an array-like object out of which you can read uint32 values.'''
)
140 uint64
= property
(_make_helper_uint64
, None
, doc
='''A read only property that returns an array-like object out of which you can read uint64 values.'''
)
141 sint8
= property
(_make_helper_sint8
, None
, doc
='''A read only property that returns an array-like object out of which you can read sint8 values.'''
)
142 sint16
= property
(_make_helper_sint16
, None
, doc
='''A read only property that returns an array-like object out of which you can read sint16 values.'''
)
143 sint32
= property
(_make_helper_sint32
, None
, doc
='''A read only property that returns an array-like object out of which you can read sint32 values.'''
)
144 sint64
= property
(_make_helper_sint64
, None
, doc
='''A read only property that returns an array-like object out of which you can read sint64 values.'''
)
145 float
= property
(_make_helper_float
, None
, doc
='''A read only property that returns an array-like object out of which you can read float values.'''
)
146 double
= property
(_make_helper_double
, None
, doc
='''A read only property that returns an array-like object out of which you can read double values.'''
)
147 uint8s
= property
(_read_all_uint8
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as uint8 values.'''
)
148 uint16s
= property
(_read_all_uint16
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as uint16 values.'''
)
149 uint32s
= property
(_read_all_uint32
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as uint32 values.'''
)
150 uint64s
= property
(_read_all_uint64
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as uint64 values.'''
)
151 sint8s
= property
(_read_all_sint8
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as sint8 values.'''
)
152 sint16s
= property
(_read_all_sint16
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as sint16 values.'''
)
153 sint32s
= property
(_read_all_sint32
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as sint32 values.'''
)
154 sint64s
= property
(_read_all_sint64
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as sint64 values.'''
)
155 floats
= property
(_read_all_float
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as float values.'''
)
156 doubles
= property
(_read_all_double
, None
, doc
='''A read only property that returns an array with all the contents of this SBData represented as double values.'''
)
157 byte_order
= property
(GetByteOrder
, SetByteOrder
, doc
='''A read
/write property getting and setting the endianness of this SBData
(data.byte_order
= lldb.eByteOrderLittle
).'''
)
158 size
= property
(GetByteSize
, None
, doc
='''A read only property that returns the size the same result as GetByteSize
().'''
)