From 88ff6cd5ae1f6de7674c63c3b850cb7282fc93c3 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 15 Nov 2016 11:56:18 +0100 Subject: [PATCH] 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 --- share/qtcreator/debugger/lldbbridge.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 51b9ce1babd..5f257fb324d 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)