forked from qt-creator/qt-creator
Debugger: Simplify qtHookData access in dumper
Change-Id: I14b7ecb5fbe1e6b2a2c587aa7dcb5ef18e3cb9f3 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -2594,9 +2594,19 @@ class DumperBase:
|
||||
if metaObjectPtr:
|
||||
self.putQObjectGuts(value, metaObjectPtr)
|
||||
|
||||
def symbolAddress(self, symbolName):
|
||||
return self.parseAndEvaluate("(size_t)&" + symbolName).pointer()
|
||||
|
||||
def qtTypeInfoVersion(self):
|
||||
return 11 # FIXME
|
||||
addr = self.symbolAddress("qtHookData")
|
||||
if addr:
|
||||
# Only available with Qt 5.3+
|
||||
(hookVersion, x, x, x, x, x, tiVersion) = self.split('ppppppp', addr)
|
||||
#warn("HOOK: %s TI: %s" % (hookVersion, tiVersion))
|
||||
if hookVersion >= 3:
|
||||
self.qtTypeInfoVersion = lambda: tiVersion
|
||||
return tiVersion
|
||||
return None
|
||||
|
||||
def lookupType(self, typestring):
|
||||
return self.fromNativeType(self.lookupNativeType(typestring))
|
||||
|
@@ -764,19 +764,6 @@ class Dumper(DumperBase):
|
||||
# Use fallback until we have a better answer.
|
||||
return self.fallbackQtVersion
|
||||
|
||||
def qtTypeInfoVersion(self):
|
||||
try:
|
||||
# Only available with Qt 5.3+
|
||||
hookVersion = int(str(gdb.parse_and_eval("((void**)&qtHookData)[0]")), 16)
|
||||
tiVersion = int(str(gdb.parse_and_eval("((void**)&qtHookData)[6]")), 16)
|
||||
#warn("HOOK: %s TI: %s" % (hookVersion, tiVersion))
|
||||
if hookVersion >= 3:
|
||||
self.qtTypeInfoVersion = lambda: tiVersion
|
||||
return tiVersion
|
||||
except:
|
||||
pass
|
||||
return None
|
||||
|
||||
def isQt3Support(self):
|
||||
if self.qtVersion() >= 0x050000:
|
||||
return False
|
||||
|
@@ -557,26 +557,6 @@ class Dumper(DumperBase):
|
||||
self.qtVersionAndNamespace()
|
||||
return self.qtVersionAndNamespace()[1]
|
||||
|
||||
def qtTypeInfoVersion(self):
|
||||
try:
|
||||
thread = self.currentThread()
|
||||
frame = thread.GetFrameAtIndex(0)
|
||||
#options = lldb.SBExpressionOptions()
|
||||
exp = "((quintptr**)&qtHookData)[0]"
|
||||
#hookVersion = lldb.target.EvaluateExpression(exp, options).GetValueAsUnsigned()
|
||||
hookVersion = frame.EvaluateExpression(exp).GetValueAsUnsigned()
|
||||
exp = "((quintptr**)&qtHookData)[6]"
|
||||
#warn("EXP: %s" % exp)
|
||||
#tiVersion = lldb.target.EvaluateExpression(exp, options).GetValueAsUnsigned()
|
||||
tiVersion = frame.EvaluateExpression(exp).GetValueAsUnsigned()
|
||||
#warn("HOOK: %s TI: %s" % (hookVersion, tiVersion))
|
||||
if hookVersion >= 3:
|
||||
self.qtTypeInfoVersion = lambda: tiVersion
|
||||
return tiVersion
|
||||
except:
|
||||
pass
|
||||
return None
|
||||
|
||||
def ptrSize(self):
|
||||
return self.target.GetAddressByteSize()
|
||||
|
||||
|
Reference in New Issue
Block a user