forked from qt-creator/qt-creator
Debugger: Make autotest pass for LLDB arrays
Change-Id: I1baa4684e85d0ccd677956eeff88b4cc7d807922 Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -293,13 +293,16 @@ def impl_SBValue__int__(self):
|
|||||||
def impl_SBValue__long__(self):
|
def impl_SBValue__long__(self):
|
||||||
return int(self.GetValue(), 0)
|
return int(self.GetValue(), 0)
|
||||||
|
|
||||||
def impl_SBValue__getitem__(self, name):
|
def impl_SBValue__getitem__(value, index):
|
||||||
if self.GetType().IsPointerType() and isinstance(name, int):
|
if isinstance(index, int):
|
||||||
innertype = self.Dereference().GetType()
|
type = value.GetType()
|
||||||
address = self.GetValueAsUnsigned() + name * innertype.GetByteSize()
|
if type.IsPointerType():
|
||||||
address = address & 0xFFFFFFFFFFFFFFFF # Force unsigned
|
innertype = value.Dereference().GetType()
|
||||||
return self.CreateValueFromAddress(None, address, innertype)
|
address = value.GetValueAsUnsigned() + index * innertype.GetByteSize()
|
||||||
return self.GetChildMemberWithName(name)
|
address = address & 0xFFFFFFFFFFFFFFFF # Force unsigned
|
||||||
|
return value.CreateValueFromAddress(None, address, innertype)
|
||||||
|
return value.GetChildAtIndex(index)
|
||||||
|
return value.GetChildMemberWithName(index)
|
||||||
|
|
||||||
def childAt(value, index):
|
def childAt(value, index):
|
||||||
return value.GetChildAtIndex(index)
|
return value.GetChildAtIndex(index)
|
||||||
@@ -947,6 +950,11 @@ class Dumper:
|
|||||||
# Our turf now.
|
# Our turf now.
|
||||||
value.SetPreferSyntheticValue(False)
|
value.SetPreferSyntheticValue(False)
|
||||||
|
|
||||||
|
# Arrays
|
||||||
|
if value.GetType().GetTypeClass() == lldb.eTypeClassArray:
|
||||||
|
qdump____c_style_array__(self, value)
|
||||||
|
return
|
||||||
|
|
||||||
# References
|
# References
|
||||||
if value.GetType().IsReferenceType():
|
if value.GetType().IsReferenceType():
|
||||||
type = value.GetType().GetDereferencedType().GetPointerType()
|
type = value.GetType().GetDereferencedType().GetPointerType()
|
||||||
|
@@ -1981,10 +1981,9 @@ def qdump__QxXmlAttributes(d, value):
|
|||||||
|
|
||||||
def qdump____c_style_array__(d, value):
|
def qdump____c_style_array__(d, value):
|
||||||
type = value.type.unqualified()
|
type = value.type.unqualified()
|
||||||
targetType = type.target()
|
targetType = value[0].type
|
||||||
typeName = str(type)
|
|
||||||
#d.putAddress(value.address)
|
#d.putAddress(value.address)
|
||||||
d.putType(typeName)
|
d.putType(type)
|
||||||
d.putNumChild(1)
|
d.putNumChild(1)
|
||||||
format = d.currentItemFormat()
|
format = d.currentItemFormat()
|
||||||
isDefault = format == None and str(targetType.unqualified()) == "char"
|
isDefault = format == None and str(targetType.unqualified()) == "char"
|
||||||
|
Reference in New Issue
Block a user