From f3cbd506ddbcdadcea8dd3de153059f32a72f3cb Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 27 Feb 2023 15:56:50 +0100 Subject: [PATCH] Debugger: Avoid looking up qt symbols globally to get the qt namespace This can get very expensive for targets that have a lot or big modules, but are not linked against Qt. On the downside we might not be able to identify Qt namespaces in static builds. Task-number: QTCREATORBUG-18287 Change-Id: I90e0c4afcde17fd81d49017e828ce59f0abe9b5c Reviewed-by: hjk Reviewed-by: Christian Stenger --- share/qtcreator/debugger/cdbbridge.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/share/qtcreator/debugger/cdbbridge.py b/share/qtcreator/debugger/cdbbridge.py index 8b0d323aa56..8e5241e934a 100644 --- a/share/qtcreator/debugger/cdbbridge.py +++ b/share/qtcreator/debugger/cdbbridge.py @@ -298,16 +298,16 @@ class Dumper(DumperBase): coreModuleName = self.qtCoreModuleName() if coreModuleName is not None: qstrdupSymbolName = '%s!%s' % (coreModuleName, qstrdupSymbolName) - resolved = cdbext.resolveSymbol(qstrdupSymbolName) - if resolved: - name = resolved[0].split('!')[1] - namespaceIndex = name.find('::') - if namespaceIndex > 0: - namespace = name[:namespaceIndex + 2] + resolved = cdbext.resolveSymbol(qstrdupSymbolName) + if resolved: + name = resolved[0].split('!')[1] + namespaceIndex = name.find('::') + if namespaceIndex > 0: + namespace = name[:namespaceIndex + 2] + self.qtCustomEventFunc = self.parseAndEvaluate( + '%s!%sQObject::customEvent' % + (self.qtCoreModuleName(), namespace)).address() self.qtNamespace = lambda: namespace - self.qtCustomEventFunc = self.parseAndEvaluate( - '%s!%sQObject::customEvent' % - (self.qtCoreModuleName(), namespace)).address() return namespace def qtVersion(self):