forked from qt-creator/qt-creator
Debugger: Simplify Qt namespace guessing code
We get proper notification when QtCore is loaded now, and we either got it, or not. Change-Id: I9485126d9b15b8d859ba440f3ba1623f03527ef8 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -286,8 +286,6 @@ class DumperBase:
|
|||||||
'personaltypes',
|
'personaltypes',
|
||||||
]
|
]
|
||||||
|
|
||||||
self.currentQtNamespaceGuess = None
|
|
||||||
|
|
||||||
# These values are never used, but the variables need to have
|
# These values are never used, but the variables need to have
|
||||||
# some value base for the swapping logic in Children.__enter__()
|
# some value base for the swapping logic in Children.__enter__()
|
||||||
# and Children.__exit__().
|
# and Children.__exit__().
|
||||||
@@ -324,11 +322,6 @@ class DumperBase:
|
|||||||
#warn('EXPANDED INAMES: %s' % self.expandedINames)
|
#warn('EXPANDED INAMES: %s' % self.expandedINames)
|
||||||
#warn('WATCHERS: %s' % self.watchers)
|
#warn('WATCHERS: %s' % self.watchers)
|
||||||
|
|
||||||
# The guess does not need to be updated during a fetchVariables()
|
|
||||||
# as the result is fixed during that time (ignoring "active"
|
|
||||||
# dumpers causing loading of shared objects etc).
|
|
||||||
self.currentQtNamespaceGuess = None
|
|
||||||
|
|
||||||
def resetCaches(self):
|
def resetCaches(self):
|
||||||
# This is a cache mapping from 'type name' to 'display alternatives'.
|
# This is a cache mapping from 'type name' to 'display alternatives'.
|
||||||
self.qqFormats = { 'QVariant (QVariantMap)' : mapForms() }
|
self.qqFormats = { 'QVariant (QVariantMap)' : mapForms() }
|
||||||
|
@@ -959,10 +959,8 @@ class Dumper(DumperBase):
|
|||||||
self.importPlainDumper(printer)
|
self.importPlainDumper(printer)
|
||||||
|
|
||||||
def qtNamespace(self):
|
def qtNamespace(self):
|
||||||
self.preping('qtNamespace')
|
# This function is replaced by handleQtCoreLoaded()
|
||||||
res = self.qtNamespaceX()
|
return ''
|
||||||
self.ping('qtNamespace')
|
|
||||||
return res
|
|
||||||
|
|
||||||
def findSymbol(self, symbolName):
|
def findSymbol(self, symbolName):
|
||||||
try:
|
try:
|
||||||
@@ -1003,6 +1001,12 @@ class Dumper(DumperBase):
|
|||||||
strns = ('%d%s' % (lenns - 2, ns[:lenns - 2])) if lenns else ''
|
strns = ('%d%s' % (lenns - 2, ns[:lenns - 2])) if lenns else ''
|
||||||
|
|
||||||
if lenns:
|
if lenns:
|
||||||
|
# This might be wrong, but we can't do better: We found
|
||||||
|
# a libQt5Core and could not extract a namespace.
|
||||||
|
# The best guess is that there isn't any.
|
||||||
|
self.qtNamespaceToReport = ns
|
||||||
|
self.qtNamespace = lambda: ns
|
||||||
|
|
||||||
sym = '_ZN%s7QObject11customEventEPNS_6QEventE' % strns
|
sym = '_ZN%s7QObject11customEventEPNS_6QEventE' % strns
|
||||||
else:
|
else:
|
||||||
sym = '_ZN7QObject11customEventEP6QEvent'
|
sym = '_ZN7QObject11customEventEP6QEvent'
|
||||||
@@ -1014,19 +1018,6 @@ class Dumper(DumperBase):
|
|||||||
sym = '_ZNK%s7QObject8propertyEPKc' % strns
|
sym = '_ZNK%s7QObject8propertyEPKc' % strns
|
||||||
self.qtPropertyFunc = self.findSymbol(sym)
|
self.qtPropertyFunc = self.findSymbol(sym)
|
||||||
|
|
||||||
# This might be wrong, but we can't do better: We found
|
|
||||||
# a libQt5Core and could not extract a namespace.
|
|
||||||
# The best guess is that there isn't any.
|
|
||||||
self.qtNamespaceToReport = ns
|
|
||||||
self.qtNamespace = lambda: ns
|
|
||||||
|
|
||||||
def qtNamespaceX(self):
|
|
||||||
if not self.currentQtNamespaceGuess is None:
|
|
||||||
return self.currentQtNamespaceGuess
|
|
||||||
|
|
||||||
self.currentQtNamespaceGuess = ''
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def assignValue(self, args):
|
def assignValue(self, args):
|
||||||
typeName = self.hexdecode(args['type'])
|
typeName = self.hexdecode(args['type'])
|
||||||
expr = self.hexdecode(args['expr'])
|
expr = self.hexdecode(args['expr'])
|
||||||
|
Reference in New Issue
Block a user