summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2016-11-15 11:56:18 +0100
committerhjk <hjk@qt.io>2016-11-16 08:38:35 +0000
commit88ff6cd5ae1f6de7674c63c3b850cb7282fc93c3 (patch)
treefa374ba7af7841a4691345ccd7d72a9f94142b26
parent80b2a4f1ba6591c68101438f9cd6d62c6e737a14 (diff)
downloadqt-creator-88ff6cd5ae1f6de7674c63c3b850cb7282fc93c3.tar.gz
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>
-rw-r--r--share/qtcreator/debugger/lldbbridge.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 51b9ce1bab..5f257fb324 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -247,7 +247,7 @@ class Dumper(DumperBase):
if bitsize > 0:
#bitpos = bitpos % bitsize
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.
for i in range(fakeValue.GetNumChildren()):
@@ -259,11 +259,12 @@ class Dumper(DumperBase):
nativeFieldType = nativeField.GetType()
if field.name in fieldBits:
- (field.lbitsize, field.lbitpos) = fieldBits[field.name]
+ (field.lbitsize, field.lbitpos, isBitfield) = fieldBits[field.name]
else:
field.lbitsize = nativeFieldType.GetByteSize() * 8
+ isBitfield = False
- if field.lbitsize != nativeFieldType.GetByteSize() * 8:
+ if isBitfield:
field.ltype = self.createBitfieldType(self.typeName(nativeFieldType), field.lbitsize)
else:
fakeMember = fakeValue.GetChildAtIndex(i)