Debugger: Fix pointer dereferencing in gdb dumper

Size depends on target arch, not host arch.

Change-Id: I8d7875159910f94b332967d14fa654a899f954fd
Reviewed-by: Rainer Keller <rainer.keller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-10-30 12:51:54 +01:00
parent a99c45d437
commit dbb95ba7f2

View File

@@ -1219,7 +1219,9 @@ class Dumper(DumperBase):
# https://sourceware.org/ml/gdb-patches/2013-09/msg00571.html
def dereference(self, addr):
#return long(gdb.Value(addr).cast(self.voidPtrType().pointer()).dereference())
return struct.unpack("P", self.readRawMemory(addr, self.ptrSize()))[0]
ptrSize = self.ptrSize()
code = "I" if ptrSize == 4 else "Q"
return struct.unpack(code, self.readRawMemory(addr, ptrSize))[0]
def extractInt64(self, addr):
return struct.unpack("q", self.readRawMemory(addr, 8))[0]