diff options
author | hjk <hjk121@nokiamail.com> | 2014-01-30 16:15:22 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-01-30 16:17:40 +0100 |
commit | 357598059d8215f6b60d1e6db46c02bcf835a5d2 (patch) | |
tree | 6cf16377b0732f69c769e5e9718693f3c10ce10d /share | |
parent | c6f4931624ca92ff0ee8c3bc6443881cc321e27b (diff) | |
download | qt-creator-357598059d8215f6b60d1e6db46c02bcf835a5d2.tar.gz |
Debugger: Consolidate ways to dereference in dumpers
Change-Id: I513123a1b5564ff2beee13b5d0264f1fa8fc698e
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/dumper.py | 6 | ||||
-rw-r--r-- | share/qtcreator/debugger/qttypes.py | 38 | ||||
-rw-r--r-- | share/qtcreator/debugger/stdtypes.py | 17 |
3 files changed, 30 insertions, 31 deletions
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index f904be8c79..c53c62144f 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -871,7 +871,7 @@ class DumperBase: # Offset of objectName in QObjectPrivate: 5 pointer + 2 int # - [QObjectData base] # - QString objectName - objectName = self.dereference(dd + 5 * ptrSize + 2 * intSize) + objectName = self.extractPointer(dd + 5 * ptrSize + 2 * intSize) else: # Size of QObjectData: 5 pointer + 2 int @@ -882,7 +882,7 @@ class DumperBase: # - uint isWidget : 1; etc... # - int postedEvents; # - QDynamicMetaObjectData *metaObject; - extra = self.dereference(dd + 5 * ptrSize + 2 * intSize) + extra = self.extractPointer(dd + 5 * ptrSize + 2 * intSize) if extra == 0: return False @@ -893,7 +893,7 @@ class DumperBase: # - QVector<int> runningTimers; # - QList<QPointer<QObject> > eventFilters; # - QString objectName - objectName = self.dereference(extra + 5 * ptrSize) + objectName = self.extractPointer(extra + 5 * ptrSize) data, size, alloc = self.byteArrayDataHelper(objectName) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index e9173dc4d6..010736ae64 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -259,12 +259,12 @@ def qdump__QDateTime(d, value): msecs = d.extractInt64(dateBase) spec = d.extractInt(dateBase + 8) offset = d.extractInt(dateBase + 12) - tzp = d.dereference(dateBase + 16) + tzp = d.extractPointer(dateBase + 16) if tzp == 0: tz = "" else: idBase = tzp + 2 * d.ptrSize() # [QSharedData] + [vptr] - tz = d.encodeByteArrayHelper(d.dereference(idBase)) + tz = d.encodeByteArrayHelper(d.extractPointer(idBase)) d.putValue("%s/%s/%s/%s/%s" % (msecs, spec, offset, tz, status), DateTimeInternal) else: @@ -404,7 +404,7 @@ def qdump__QFile(d, value): offset = 176 if d.is32bit() else 280 else: offset = 140 if d.is32bit() else 232 - privAddress = d.dereference(d.addressOf(value) + d.ptrSize()) + privAddress = d.extractPointer(d.addressOf(value) + d.ptrSize()) fileNameAddress = privAddress + offset d.putStringValueByAddress(fileNameAddress) d.putNumChild(1) @@ -682,7 +682,7 @@ def qdump__QHostAddress(d, value): ipStringAddress = privAddress + (0 if isQt5 else 24) isParsedAddress = privAddress + 24 + 2 * sizeofQString # value.d.d->ipString - ipString = d.encodeStringHelper(d.dereference(ipStringAddress)) + ipString = d.encodeStringHelper(d.extractPointer(ipStringAddress)) if d.extractByte(isParsedAddress) and len(ipString) > 0: d.putValue(ipString, Hex4EncodedLittleEndian) else: @@ -697,7 +697,7 @@ def qdump__QHostAddress(d, value): data = d.readMemory(privAddress + a6Offset, 16) address = ':'.join("%x" % int(data[i:i+4], 16) for i in xrange(0, 32, 4)) scopeId = privAddress + sizeofQString + (0 if isQt5 else 24) - scopeId = d.encodeStringHelper(d.dereference(scopeId)) + scopeId = d.encodeStringHelper(d.extractPointer(scopeId)) d.putValue("%s%%%s" % (address, scopeId), IPv6AddressAndHexScopeId) elif proto == 0: # value.d.d->a @@ -795,7 +795,7 @@ def qdump__QImage(d, value): ptrSize = d.ptrSize() isQt5 = d.qtVersion() >= 0x050000 offset = (3 if isQt5 else 2) * ptrSize - base = d.dereference(d.addressOf(value) + offset) + base = d.extractPointer(d.addressOf(value) + offset) if base == 0: d.putValue("(invalid)") return @@ -806,7 +806,7 @@ def qdump__QImage(d, value): padding = d.ptrSize() - d.intSize() pixelRatioSize = 8 if isQt5 else 0 jumpTableSize = ptrSize if qt3Support else 0 - bits = d.dereference(base + 20 + padding + pixelRatioSize + ptrSize) + bits = d.extractPointer(base + 20 + padding + pixelRatioSize + ptrSize) iformat = d.extractInt(base + 20 + padding + pixelRatioSize + jumpTableSize + 2 * ptrSize) d.putValue("(%dx%d)" % (width, height)) d.putNumChild(1) @@ -852,10 +852,10 @@ def qdump__QLinkedList(d, value): if d.isExpanded(): innerType = d.templateArgument(value.type, 0) with Children(d, n, maxNumChild=1000, childType=innerType): - pp = d.dereference(dd) + pp = d.extractPointer(dd) for i in d.childRange(): d.putSubItem(i, d.createValue(pp + 2 * ptrSize, innerType)) - pp = d.dereference(pp) + pp = d.extractPointer(pp) qqLocalesCount = None @@ -1500,7 +1500,7 @@ def _qdump__QObject(d, value): def qdump__QPixmap(d, value): offset = (3 if d.qtVersion() >= 0x050000 else 2) * d.ptrSize() - base = d.dereference(d.addressOf(value) + offset) + base = d.extractPointer(d.addressOf(value) + offset) if base == 0: d.putValue("(invalid)") else: @@ -1828,7 +1828,7 @@ def qdump__QUrl(d, value): d.putValue("<invalid>") return encodedOriginalAddress = privAddress + 8 * d.ptrSize() - d.putValue(d.encodeByteArrayHelper(d.dereference(encodedOriginalAddress)), Hex2EncodedLatin1) + d.putValue(d.encodeByteArrayHelper(d.extractPointer(encodedOriginalAddress)), Hex2EncodedLatin1) d.putNumChild(8) if d.isExpanded(): stringType = d.lookupType(d.qtNamespace() + "QString") @@ -1860,13 +1860,13 @@ def qdump__QUrl(d, value): d.putValue("<invalid>") return schemeAddr = privAddress + 2 * d.intSize() - scheme = d.encodeStringHelper(d.dereference(schemeAddr)) - userName = d.encodeStringHelper(d.dereference(schemeAddr + 1 * d.ptrSize())) - password = d.encodeStringHelper(d.dereference(schemeAddr + 2 * d.ptrSize())) - host = d.encodeStringHelper(d.dereference(schemeAddr + 3 * d.ptrSize())) - path = d.encodeStringHelper(d.dereference(schemeAddr + 4 * d.ptrSize())) - query = d.encodeStringHelper(d.dereference(schemeAddr + 5 * d.ptrSize())) - fragment = d.encodeStringHelper(d.dereference(schemeAddr + 6 * d.ptrSize())) + scheme = d.encodeStringHelper(d.extractPointer(schemeAddr)) + userName = d.encodeStringHelper(d.extractPointer(schemeAddr + 1 * d.ptrSize())) + password = d.encodeStringHelper(d.extractPointer(schemeAddr + 2 * d.ptrSize())) + host = d.encodeStringHelper(d.extractPointer(schemeAddr + 3 * d.ptrSize())) + path = d.encodeStringHelper(d.extractPointer(schemeAddr + 4 * d.ptrSize())) + query = d.encodeStringHelper(d.extractPointer(schemeAddr + 5 * d.ptrSize())) + fragment = d.encodeStringHelper(d.extractPointer(schemeAddr + 6 * d.ptrSize())) port = d.extractInt(d.extractPointer(value) + d.intSize()) url = scheme @@ -2067,7 +2067,7 @@ def qdump__QVariant(d, value): if variantType == 128 or variantType == 135: # No indirection for float. blob = d.toBlob(value) else: - blob = d.extractBlob(d.dereference(value["d"]["data"]["ptr"]), 8) + blob = d.extractBlob(d.extractPointer(value["d"]["data"]["ptr"]), 8) qdumpHelper_QVariants_D[variantType - 128](d, blob) return None diff --git a/share/qtcreator/debugger/stdtypes.py b/share/qtcreator/debugger/stdtypes.py index edff234011..cb740943b3 100644 --- a/share/qtcreator/debugger/stdtypes.py +++ b/share/qtcreator/debugger/stdtypes.py @@ -142,10 +142,10 @@ def qdump__std__list(d, value): node = impl["_M_node"] head = d.addressOf(node) size = 0 - pp = d.dereference(head) + pp = d.extractPointer(head) while head != pp and size <= 1001: size += 1 - pp = d.dereference(pp) + pp = d.extractPointer(pp) d.putItemCount(size, 1000) d.putNumChild(size) @@ -456,7 +456,7 @@ def qdump__std____1__string(d, value): firstByte = d.extractByte(base) if firstByte & 1: # Long/external. - data = d.dereference(base + 2 * d.ptrSize()) + data = d.extractPointer(base + 2 * d.ptrSize()) size = d.extractInt(base + d.ptrSize()) else: # Short/internal. @@ -471,7 +471,7 @@ def qdump__std____1__wstring(d, value): firstByte = d.extractByte(base) if firstByte & 1: # Long/external. - data = d.dereference(base + 2 * d.ptrSize()) + data = d.extractPointer(base + 2 * d.ptrSize()) size = d.extractInt(base + d.ptrSize()) else: # Short/internal. @@ -599,12 +599,12 @@ def qdump__std__unordered_map(d, value): d.putField("iname", d.currentIName) d.putName("[%s] %s" % (i, pair["first"])) d.putValue(pair["second"]) - p = d.dereference(p) + p = d.extractPointer(p) else: with Children(d, size, childType=pairType): for i in d.childRange(): d.putSubItem(i, d.createValue(p + ptrSize - offset, pairType)) - p = d.dereference(p + offset) + p = d.extractPointer(p + offset) def qdump__std____debug__unordered_map(d, value): qdump__std__unordered_map(d, value) @@ -635,7 +635,7 @@ def qdump__std__unordered_set(d, value): ptrSize = d.ptrSize() for i in d.childRange(): d.putSubItem(i, d.createValue(p + ptrSize - offset, valueType)) - p = d.dereference(p + offset) + p = d.extractPointer(p + offset) def qform__std____1__unordered_map(): return mapForms() @@ -721,8 +721,7 @@ def qdump__std__vector(d, value): base = d.pointerValue(start) for i in d.childRange(): q = base + int(i / 8) - d.putBoolItem(str(i), - (int(d.dereference(q)) >> (i % 8)) & 1) + d.putBoolItem(str(i), (int(d.extractPointer(q)) >> (i % 8)) & 1) else: d.putPlotData(type, start, size) |