diff options
author | David Schulz <david.schulz@qt.io> | 2017-12-13 14:20:49 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2017-12-20 09:32:18 +0000 |
commit | b2052561cca185ca18b114110ae401ad9cb43aec (patch) | |
tree | 5509f14d6aeaf5a5d8414570e54adeb347a3f7a0 /share | |
parent | 83e01b47779aed20385149e6e68eaf4dd4b1b23a (diff) |
Debugger: improve evaluate expression with cdb
Replace Evaluate with AddSymbol and create a PyValue representing
that expression
Change-Id: Ibb8ab70c41df81e9d7d683b633a070caa03036d3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/cdbbridge.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/share/qtcreator/debugger/cdbbridge.py b/share/qtcreator/debugger/cdbbridge.py index e34b8ed48e5..7897028b647 100644 --- a/share/qtcreator/debugger/cdbbridge.py +++ b/share/qtcreator/debugger/cdbbridge.py @@ -225,13 +225,7 @@ class Dumper(DumperBase): return None def parseAndEvaluate(self, exp): - val = cdbext.parseAndEvaluate(exp) - if val is None: - return None - value = self.Value(self) - value.type = self.lookupType('void *') - value.ldata = val.to_bytes(8, sys.byteorder) - return value + return self.fromNativeValue(cdbext.parseAndEvaluate(exp)) def isWindowsTarget(self): return True @@ -316,12 +310,12 @@ class Dumper(DumperBase): if namespaceIndex > 0: namespace = name[:namespaceIndex + 2] self.qtNamespace = lambda: namespace - self.qtCustomEventFunc = cdbext.parseAndEvaluate('%s!%sQObject::customEvent' - % (self.qtCoreModuleName(), namespace)) + self.qtCustomEventFunc = self.parseAndEvaluate('%s!%sQObject::customEvent' + % (self.qtCoreModuleName(), namespace)).address() return namespace def qtVersion(self): - qtVersion = self.findValueByExpression('((void**)&%s)[2]' % self.qtHookDataSymbolName()) + qtVersion = self.parseAndEvaluate('((void**)&%s)[2]' % self.qtHookDataSymbolName()).integer() if qtVersion is None and self.qtCoreModuleName() is not None: try: versionValue = cdbext.call(self.qtCoreModuleName() + '!qVersion()') |