diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index cc3e8ddd59a..a6f02e8b527 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -619,7 +619,8 @@ class DumperBase(): elided, shown = self.computeLimit(size, limit) return elided, self.readMemory(data, 2 * shown) - def encodeByteArrayHelper(self, addr, limit): + def encodeByteArrayHelper(self, value, limit): + addr = self.extractPointer(value) data, size, alloc = self.qArrayDataHelper(addr) if alloc != 0: self.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000) @@ -670,15 +671,14 @@ class DumperBase(): return self.hexencode(bytes(self.readRawMemory(addr, size))) def encodeByteArray(self, value, limit=0): - elided, data = self.encodeByteArrayHelper(self.extractPointer(value), limit) + elided, data = self.encodeByteArrayHelper(value, limit) return data def qArrayData(self, value): return self.qArrayDataHelper(self.extractPointer(value)) def putByteArrayValue(self, value): - elided, data = self.encodeByteArrayHelper( - self.extractPointer(value), self.displayStringLimit) + elided, data = self.encodeByteArrayHelper(value, self.displayStringLimit) self.putValue(data, 'latin1', elided=elided) def encodeString(self, value, limit=0): diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index da1f31e8939..36da4087a5b 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -72,7 +72,7 @@ def qdump__QByteArray(d, value): elided, shown = d.computeLimit(size, d.displayStringLimit) p = d.readMemory(data, shown) else: - elided, p = d.encodeByteArrayHelper(d.extractPointer(value), d.displayStringLimit) + elided, p = d.encodeByteArrayHelper(value, d.displayStringLimit) displayFormat = d.currentItemFormat() if displayFormat == DisplayFormat.Automatic or displayFormat == DisplayFormat.Latin1String: @@ -380,7 +380,7 @@ def qdump__QDateTime(d, value): tz = '' else: idBase = tzp + 2 * d.ptrSize() # [QSharedData] + [vptr] - elided, tz = d.encodeByteArrayHelper(d.extractPointer(idBase), limit=100) + elided, tz = d.encodeByteArray(idBase, limit=100) d.putValue('%s/%s/%s/%s/%s/%s' % (msecs, spec, offset, tz, status, 0), 'datetimeinternal') else: