Debugger: Adapt QDir dumper to Qt6

Task-number: QTCREATORBUG-24098
Change-Id: I5346a8eb129dd042279754748b26852acf082f94
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2020-11-25 08:23:22 +01:00
parent c13c9f1dea
commit 1f75893eba

View File

@@ -468,10 +468,12 @@ def qdump__QDir(d, value):
# + 2 byte padding # + 2 byte padding
fileSystemEntrySize = 2 * d.ptrSize() + 8 fileSystemEntrySize = 2 * d.ptrSize() + 8
if d.qtVersion() < 0x050200: if d.qtVersion() >= 0x060000:
case = 0 case = 2
elif d.qtVersion() >= 0x050300: elif d.qtVersion() >= 0x050300:
case = 1 case = 1
elif d.qtVersion() < 0x050200:
case = 0
else: else:
# Try to distinguish bool vs QStringList at the first item # Try to distinguish bool vs QStringList at the first item
# after the (padded) refcount. If it looks like a bool assume # after the (padded) refcount. If it looks like a bool assume
@@ -479,17 +481,28 @@ def qdump__QDir(d, value):
firstValue = d.extractInt(privAddress + d.ptrSize()) firstValue = d.extractInt(privAddress + d.ptrSize())
case = 1 if firstValue == 0 or firstValue == 1 else 0 case = 1 if firstValue == 0 or firstValue == 1 else 0
if case == 1: if case == 2:
if bit32:
filesOffset = 4
fileInfosOffset = 16
dirEntryOffset = 40
absoluteDirEntryOffset = 72
else:
filesOffset = 8
fileInfosOffset = 32
dirEntryOffset = 96
absoluteDirEntryOffset = 152
elif case == 1:
if bit32: if bit32:
filesOffset = 4 filesOffset = 4
fileInfosOffset = 8 fileInfosOffset = 8
dirEntryOffset = 0x20 dirEntryOffset = 32
absoluteDirEntryOffset = 0x30 absoluteDirEntryOffset = 48
else: else:
filesOffset = 0x08 filesOffset = 8
fileInfosOffset = 0x10 fileInfosOffset = 16
dirEntryOffset = 0x30 dirEntryOffset = 48
absoluteDirEntryOffset = 0x48 absoluteDirEntryOffset = 72
else: else:
# Assume this is before 9fc0965. # Assume this is before 9fc0965.
qt3support = d.isQt3Support() qt3support = d.isQt3Support()
@@ -1037,7 +1050,7 @@ def qdump__QVariantList(d, value):
def qdumpHelper_QList(d, value, innerType): def qdumpHelper_QList(d, value, innerType):
if d.qtVersion() >= 0x60000: if d.qtVersion() >= 0x60000:
dd, data, size = value.split('ppi') dd, data, size = d.split('ppi', value)
d.putItemCount(size) d.putItemCount(size)
d.putPlotData(data, size, innerType) d.putPlotData(data, size, innerType)
return return