forked from qt-creator/qt-creator
Debugger: Use a more robust fallback for SBValue.Dereference
Change-Id: Ie81899017c7e711ea8b04d85f8298b0d73f1cbab (cherry picked from commit 88114aba3ef4ccf2d1597e9a21dd49efb8c86717) Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -189,10 +189,8 @@ def impl_SBValue__deref(value):
|
||||
result = value.Dereference()
|
||||
if result.IsValid():
|
||||
return result
|
||||
#warn("RESULT.LOADADDRESS A: 0x%x" % result.GetLoadAddress())
|
||||
result = value.CreateValueFromAddress(None, value.GetValueAsUnsigned(), value.GetType().GetPointerType())
|
||||
#warn("RESULT.LOADADDRESS B: 0x%x" % result.GetLoadAddress())
|
||||
return result
|
||||
exp = "*(class %s*)0x%x" % (value.GetType().GetPointeeType(), value.GetValueAsUnsigned())
|
||||
return value.CreateValueFromExpression(None, exp)
|
||||
|
||||
lldb.SBValue.__add__ = impl_SBValue__add__
|
||||
lldb.SBValue.__sub__ = impl_SBValue__sub__
|
||||
@@ -1046,6 +1044,7 @@ class Dumper(DumperBase):
|
||||
for i in xrange(m, n):
|
||||
#for i in range(n):
|
||||
child = value.GetChildAtIndex(i)
|
||||
# Only needed in the QVariant4 test.
|
||||
if int(child.GetLoadAddress()) == 0xffffffffffffffff:
|
||||
typeClass = child.GetType().GetTypeClass()
|
||||
if typeClass != lldb.eTypeClassBuiltin:
|
||||
|
||||
Reference in New Issue
Block a user