From fcdcc4c7f84a6d4fca6f5db056ee2dc281971e5a Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 31 Jan 2017 15:30:35 +0100 Subject: [PATCH] Debugger: Add Core::Id python dumper for cdb Change-Id: Id89f730e90586659ce76e685c014655178957222 Reviewed-by: hjk --- share/qtcreator/debugger/cdbbridge.py | 4 ++++ share/qtcreator/debugger/creatortypes.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) 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):