From cc469f6466c82e34d0ceeaa6c72d4e4a8b86ad7c Mon Sep 17 00:00:00 2001
From: hjk <hjk@theqtcompany.com>
Date: Thu, 26 Mar 2015 14:22:33 +0100
Subject: [PATCH] Debugger: Robustify extraction of integral values using LLDB

Change-Id: Ieabad21e5e00bef12eb51046235890840b5a77a1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
---
 share/qtcreator/debugger/lldbbridge.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index f8b1f930d9d..c11464152bd 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -509,13 +509,16 @@ class Dumper(DumperBase):
         return int(value.GetLoadAddress())
 
     def extractInt(self, address):
-        return int(self.createValue(address, self.intType()))
+        error = SBError()
+        return int(self.process.ReadUnsignedFromMemory(address, 4, error))
 
     def extractInt64(self, address):
-        return int(self.createValue(address, self.int64Type()))
+        error = SBError()
+        return int(self.process.ReadUnsignedFromMemory(address, 8, error))
 
     def extractByte(self, address):
-        return int(self.createValue(address, self.charType())) & 0xFF
+        error = SBError()
+        return int(self.process.ReadUnsignedFromMemory(address, 1, error) & 0xFF)
 
     def handleCommand(self, command):
         result = lldb.SBCommandReturnObject()
-- 
GitLab