Debugger: Disable QDateTime dumper for Qt >= 5.8

Chicken out for now after latest internal structure changes.

Change-Id: I66e283e52f9b51a51065520ecd3eb07b15e82fc2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2016-07-14 13:42:17 +02:00
committed by hjk
parent 63eae6bd85
commit 5dcf23f62d
2 changed files with 34 additions and 3 deletions

View File

@@ -268,7 +268,28 @@ def qdump__QDateTime(d, value):
# {sharedref(4), ...
base = d.extractPointer(value)
is32bit = d.is32bit()
if qtVersion >= 0x050200:
if qtVersion >= 0x050800:
# FIXME: Don't give up.
d.putPlainChildren(value)
return
msecsOffset = 0
statusOffset = 8
offsetFromUtcOffset = 12
timeZoneOffset = 24
status = d.extractInt(base + statusOffset)
if int(status & 0x0c == 0x0c): # ValidDate and ValidTime
isValid = True
msecs = d.extractInt64(base + msecsOffset)
offset = d.extractInt(base + offsetFromUtcOffset)
tzp = d.extractPointer(base + timeZoneOffset)
if tzp == 0:
tz = ""
else:
idBase = tzp + 2 * d.ptrSize() # [QSharedData] + [vptr]
elided, tz = d.encodeByteArrayHelper(d.extractPointer(idBase), limit=100)
d.putValue("%s/%s/%s/%s/%s" % (msecs, -1, offset, tz, status),
"datetimeinternal")
elif qtVersion >= 0x050200:
if d.isWindowsTarget():
msecsOffset = 8
specOffset = 16

View File

@@ -80,12 +80,17 @@ OFFSET_ACCESS(QDate, QDateTimePrivate, date);
OFFSET_ACCESS(QTime, QDateTimePrivate, time);
OFFSET_ACCESS(Qt::TimeSpec, QDateTimePrivate, spec);
OFFSET_ACCESS(int, QDateTimePrivate, utcOffset);
#else
#elif QT_VERSION < 0x50800
OFFSET_ACCESS(qint64, QDateTimePrivate, m_msecs);
OFFSET_ACCESS(Qt::TimeSpec, QDateTimePrivate, m_spec);
OFFSET_ACCESS(int, QDateTimePrivate, m_offsetFromUtc);
OFFSET_ACCESS(QTimeZone, QDateTimePrivate, m_timeZone);
OFFSET_ACCESS(QDateTimePrivate::StatusFlags, QDateTimePrivate, m_status);
#else
OFFSET_ACCESS(qint64, QDateTimePrivate, m_msecs);
OFFSET_ACCESS(int, QDateTimePrivate, m_offsetFromUtc);
OFFSET_ACCESS(QTimeZone, QDateTimePrivate, m_timeZone);
OFFSET_ACCESS(QDateTimePrivate::StatusFlags, QDateTimePrivate, m_status);
#endif
@@ -222,7 +227,7 @@ void tst_offsets::offsets_data()
OFFSET_TEST(QDateTimePrivate, spec) << 16 << 20;
OFFSET_TEST(QDateTimePrivate, utcOffset) << 20 << 24;
# endif
#else
#elif QT_VERSION < 0x50800
# ifdef Q_OS_WIN
OFFSET_TEST(QDateTimePrivate, m_msecs) << 8 << 8;
OFFSET_TEST(QDateTimePrivate, m_spec) << 16 << 16;
@@ -236,6 +241,11 @@ void tst_offsets::offsets_data()
OFFSET_TEST(QDateTimePrivate, m_timeZone) << 20 << 24;
OFFSET_TEST(QDateTimePrivate, m_status) << 24 << 32;
# endif
#else
OFFSET_TEST(QDateTimePrivate, m_msecs) << 0 << 0;
OFFSET_TEST(QDateTimePrivate, m_status) << 8 << 8;
OFFSET_TEST(QDateTimePrivate, m_offsetFromUtc) << 12 << 12;
OFFSET_TEST(QDateTimePrivate, m_timeZone) << 20 << 24;
#endif
#ifdef HAS_BOOST