diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 500c0477a8dbe547ba1c6dba140b7303701f511e..a22d7b850a19568c0409413629b80f3367ec4f39 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -579,11 +579,17 @@ class Dumper(DumperBase): def createPointerValue(self, address, pointeeType): addr = int(address) & 0xFFFFFFFFFFFFFFFF - return self.context.CreateValueFromAddress(None, addr, pointeeType).AddressOf() + sbaddr = lldb.SBAddress(addr, self.target) + # Any type. + # FIXME: This can be replaced with self.target.CreateValueFromExpression + # as soon as we drop support for lldb builds not having that (~Xcode 6.1) + dummy = self.target.CreateValueFromAddress('@', sbaddr, self.target.FindFirstType('char')) + return dummy.CreateValueFromExpression('', '(%s*)%s' % (pointeeType, addr)) def createValue(self, address, referencedType): addr = int(address) & 0xFFFFFFFFFFFFFFFF - return self.context.CreateValueFromAddress(None, addr, referencedType) + sbaddr = lldb.SBAddress(addr, self.target) + return self.target.CreateValueFromAddress(None, sbaddr, referencedType) def childRange(self): if self.currentMaxNumChild is None: