diff options
| author | hjk <hjk@qt.io> | 2016-11-15 11:56:18 +0100 |
|---|---|---|
| committer | hjk <hjk@qt.io> | 2016-11-16 08:38:35 +0000 |
| commit | 88ff6cd5ae1f6de7674c63c3b850cb7282fc93c3 (patch) | |
| tree | fa374ba7af7841a4691345ccd7d72a9f94142b26 | |
| parent | 80b2a4f1ba6591c68101438f9cd6d62c6e737a14 (diff) | |
| download | qt-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.py | 7 |
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) |
