forked from qt-creator/qt-creator
Debugger: Use a more direct way to detect LLDB bitfields
It has a function directly doing that, use it instead of guessing (badly, in some cases) Change-Id: I1ce317c28d60f820f8e868e3c0c5a665f8de6cb7 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -247,7 +247,7 @@ class Dumper(DumperBase):
|
|||||||
if bitsize > 0:
|
if bitsize > 0:
|
||||||
#bitpos = bitpos % bitsize
|
#bitpos = bitpos % bitsize
|
||||||
bitpos = bitpos % 8 # Reported type is always wrapping type!
|
bitpos = bitpos % 8 # Reported type is always wrapping type!
|
||||||
fieldBits[f.name] = (bitsize, bitpos)
|
fieldBits[f.name] = (bitsize, bitpos, f.IsBitfield())
|
||||||
|
|
||||||
# Normal members and non-empty base classes.
|
# Normal members and non-empty base classes.
|
||||||
for i in range(fakeValue.GetNumChildren()):
|
for i in range(fakeValue.GetNumChildren()):
|
||||||
@@ -259,11 +259,12 @@ class Dumper(DumperBase):
|
|||||||
nativeFieldType = nativeField.GetType()
|
nativeFieldType = nativeField.GetType()
|
||||||
|
|
||||||
if field.name in fieldBits:
|
if field.name in fieldBits:
|
||||||
(field.lbitsize, field.lbitpos) = fieldBits[field.name]
|
(field.lbitsize, field.lbitpos, isBitfield) = fieldBits[field.name]
|
||||||
else:
|
else:
|
||||||
field.lbitsize = nativeFieldType.GetByteSize() * 8
|
field.lbitsize = nativeFieldType.GetByteSize() * 8
|
||||||
|
isBitfield = False
|
||||||
|
|
||||||
if field.lbitsize != nativeFieldType.GetByteSize() * 8:
|
if isBitfield:
|
||||||
field.ltype = self.createBitfieldType(self.typeName(nativeFieldType), field.lbitsize)
|
field.ltype = self.createBitfieldType(self.typeName(nativeFieldType), field.lbitsize)
|
||||||
else:
|
else:
|
||||||
fakeMember = fakeValue.GetChildAtIndex(i)
|
fakeMember = fakeValue.GetChildAtIndex(i)
|
||||||
|
Reference in New Issue
Block a user