diff --git a/share/qtcreator/debugger/cdbbridge.py b/share/qtcreator/debugger/cdbbridge.py index bf14ad295e5..23fe7c95105 100644 --- a/share/qtcreator/debugger/cdbbridge.py +++ b/share/qtcreator/debugger/cdbbridge.py @@ -461,5 +461,9 @@ class Dumper(DumperBase): def callHelper(self, rettype, value, function, args): raise Exception("cdb does not support calling functions") + def nameForCoreId(self, id): + idName = cdbext.call('Cored4!Core::nameForId(%d)' % id) + return self.fromNativeValue(idName) + def putCallItem(self, name, rettype, value, func, *args): return diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 6ea3cfce140..652c30bc0a8 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -89,15 +89,15 @@ def dumpLiteral(d, value): d.putValue(d.hexencode(readLiteral(d, value)), "latin1") def qdump__Core__Id(d, value): - if d.isMsvcTarget(): - d.putValue(value.extractPointer()) + val = value.extractPointer() + if True: + if d.isMsvcTarget(): + name = d.nameForCoreId(val).address() + else: + name = d.parseAndEvaluate("Core::nameForId(0x%x)" % val).pointer() + d.putSimpleCharArray(name) else: - val = value.extractPointer() - try: - name = d.parseAndEvaluate("Core::nameForId(0x%x)" % val) - d.putSimpleCharArray(name.pointer()) - except: - d.putValue(val) + d.putValue(val) d.putPlainChildren(value) def qdump__Debugger__Internal__GdbMi(d, value):