From 3b7aee724d947df44361ed20e6479e3d7624ba65 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 9 Dec 2020 12:07:27 +0100 Subject: [PATCH] Debugger: Fix QFile dumper 64 bit for Qt6 32 bit offsets are mechanically adapted on the base that the size change was due to five containers changing from one to three pointer in Qt6, but this has not been checked. Task-number: QTCREATORBUG-24098 Change-Id: I492485a720f75df5fdde3dedb2fcfe9e953f1ed7 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/qttypes.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index b38f36a03b4..2f5c30d0333 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -652,7 +652,18 @@ def qdump__QFile(d, value): # 9fc0965 and a373ffcd change the layout of the private structure qtVersion = d.qtVersion() is32bit = d.ptrSize() == 4 - if qtVersion >= 0x050600 and d.qtTypeInfoVersion() >= 17: + if qtVersion >= 0x060000: + # FIXME: values 0 are wrong. As the file name is the + # only direct member of QFilePrivate, the offsets are + # equal to sizeof(QFileDevicePrivate), the base class. + if d.isWindowsTarget(): + if d.isMsvcTarget(): + offset = 0 if is32bit else 304 + else: + offset = 0 if is32bit else 304 + else: + offset = 0 if is32bit else 304 + elif qtVersion >= 0x050600 and d.qtTypeInfoVersion() >= 17: # Some QRingBuffer member got removed in 8f92baf5c9 if d.isWindowsTarget(): if d.isMsvcTarget():