Debugger: Fix LLDB's field size reporting

Use the field's type size if the reported field size is 0.

Change-Id: I7db49507d0ea7358b6db27dfa206f2b079bbf876
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2016-10-07 17:36:05 +02:00
committed by Christian Stenger
parent 979b034dbe
commit e149c0dac9

View File

@@ -239,8 +239,12 @@ class Dumper(DumperBase):
base = nativeType.GetVirtualBaseClassAtIndex(i) base = nativeType.GetVirtualBaseClassAtIndex(i)
virtualNames[base.GetName()] = i virtualNames[base.GetName()] = i
fieldBits = dict((field.name, (field.GetBitfieldSizeInBits(), field.GetOffsetInBits())) fieldBits = dict((f.name,
for field in nativeType.get_fields_array()) ((f.GetBitfieldSizeInBits()
if f.GetBitfieldSizeInBits() else
(f.GetType().GetByteSize() * 8)),
f.GetOffsetInBits()))
for f in nativeType.get_fields_array())
#warn("BASE NAMES: %s" % baseNames) #warn("BASE NAMES: %s" % baseNames)
#warn("VIRTUAL NAMES: %s" % virtualNames) #warn("VIRTUAL NAMES: %s" % virtualNames)
@@ -299,7 +303,7 @@ class Dumper(DumperBase):
field.parentType = fieldParentType field.parentType = fieldParentType
field.ltype = self.fromNativeType(fieldType) field.ltype = self.fromNativeType(fieldType)
field.name = fieldName field.name = fieldName
field.lbitsize = 0 field.lbitsize = field.ltype.lbitsize * 8
field.lbitpos = 0 field.lbitpos = 0
fields.append(field) fields.append(field)