summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger/dumper.py
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-03-21 17:10:24 +0100
committerhjk <hjk@qt.io>2018-03-22 08:45:57 +0000
commita8a23110bf23fd74244a9da13b41c1dd56b351ce (patch)
tree2324febb39a9e1b4f4d38c2b4802a77221c55850 /share/qtcreator/debugger/dumper.py
parentf88dc5fd589e54d9127a6b313a2167ae655dd3d0 (diff)
downloadqt-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.py25
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):