diff options
author | hjk <hjk@qt.io> | 2018-03-21 17:10:24 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-03-22 08:45:57 +0000 |
commit | a8a23110bf23fd74244a9da13b41c1dd56b351ce (patch) | |
tree | 2324febb39a9e1b4f4d38c2b4802a77221c55850 /share/qtcreator/debugger/dumper.py | |
parent | f88dc5fd589e54d9127a6b313a2167ae655dd3d0 (diff) | |
download | qt-creator-a8a23110bf23fd74244a9da13b41c1dd56b351ce.tar.gz |
Debugger: Fix enum dumper
Make the hex display work with LLDB, fix GDB and LLDB test.
Change-Id: I529b5cdc908dbcba7270bc4574fa59a012fcacad
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'share/qtcreator/debugger/dumper.py')
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 9fdd0228d6..503fae19c3 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -2742,13 +2742,8 @@ class DumperBase: if typeobj.code == TypeCodeBitfield: #warn('BITFIELD VALUE: %s %d %s' % (value.name, value.lvalue, typeName)) self.putNumChild(0) - if typeobj.ltarget and typeobj.ltarget.code == TypeCodeEnum: - if hasattr(typeobj.ltarget.typeData(), 'enumHexDisplay'): - self.putValue(typeobj.ltarget.typeData().enumHexDisplay(value.lvalue, value.laddress)) - else: - self.putValue(typeobj.ltarget.typeData().enumDisplay(value.lvalue, value.laddress)) - else: - self.putValue(value.lvalue) + dd = typeobj.ltarget.typeData().enumDisplay + self.putValue(str(value.lvalue) if dd is None else dd(value.lvalue, value.laddress, '%d')) self.putType(typeName) return @@ -2911,12 +2906,14 @@ class DumperBase: % (self.name, self.type.name, self.lbitsize, self.lbitpos, self.dumper.hexencode(self.ldata), addr) - def display(self, useHex = 1): - if self.type.code == TypeCodeEnum: - intval = self.integer() - if useHex and hasattr(self.type.typeData(), 'enumHexDisplay'): - return self.type.typeData().enumHexDisplay(intval, self.laddress) - return self.type.typeData().enumDisplay(intval, self.laddress) + def displayEnum(self, form='%d'): + intval = self.integer() + dd = self.type.typeData().enumDisplay + if dd is None: + return str(intval) + return dd(intval, self.laddress, form) + + def display(self): simple = self.value() if simple is not None: return str(simple) @@ -3375,7 +3372,7 @@ class DumperBase: self.code = None self.name = None self.typeId = None - self.enumDisplay = str + self.enumDisplay = None self.moduleName = None def copy(self): |