Qt VS Code Extensions Manual Tests Debugger
This is about catching the Qt types not properly understood by the debugger.
Found problems are to be reported in https://bugreports.qt.io/browse/VSCODEEXT-154?filter=27222
Auto test is meant to replace the manual testing
Pre-requisit | Result | Annotation |
---|---|---|
Have VS code installed (https://code.visualstudio.com/docs/setup/setup-overview) | ||
Have a Qt installation (https://account.qt.io/s/downloads) | ||
Have the Qt C++ Extension Pack installed and a Qt installation registered |
The natvis files and the related test files are located in the qt-labs/vs-debugtools repo. This is the debugging_helpers vscodeext submodule.
To use the latest vs-debugtools, use a local vscodeext. To set up everything, run:
npm ci
git submodule update --init --remote --recursive
npm run prepareNatvisFiles
npm run all_dev
To access the test files, open debugging_helper and make sure .vscode/setting.json has:
"cmake.useCMakePresets": "never"
since CMakePresets are not supported and block Qt kit visibility (ongoing).
Select a Qt kit.
In test-app/main.cpp, place a break point at the return call.
Check that the debugger output is as expected.
This is a work in progress, need to use the latest natvis files from https://github.com/narnaud/natvis4qt (to be moved to qt-labs/vs-debugtools QTVSADDINBUG-1310)
Qt6 Tested type | Variable Name | Expectation | Result | |
---|---|---|---|---|
Core Types | ||||
QByteArray | qByteArray | |||
QChar | qChar | |||
QDate | qDate | qDate: QDate = {julian day = today}
jd: qint64 = today |
ok | |
QDate with currentDateTime() | qDateTimeLocal | |||
QDate with currentDateTimeUtc() | qDateTimeUtc | |||
QDate with currentDateTimeUtc() Asia | qDateTimeBrunei | |||
QDate with currentDateTimeUtc() South Pole | qDateTimeSouthPole | |||
QDate with currentDateTimeUtc() Canada | qDateTimeYukon | |||
QDate with currentDateTimeUtc() Pacific | qDateTimeMarquesas | |||
QDate with currentDateTimeUtc() Troll | qDateTimeShouldFail | |||
QDate with currentDateTimeUtc() | qDateTimeSecOffset | |||
QDate default | qDateTimeDefault | |||
QDir | qDir | |||
QFile | qFile | |||
QFileInfo | qFileInfo | |||
enum SelectionFlags | qFlags | |||
QJsonDocument | qJsonDocument | |||
QLine | qLine | |||
QPoint | qPoint | |||
QPointF | qPointF | |||
QRect | qRect | |||
QRectF | qRectF | |||
QSize | qSize | |||
QSizeF | qSizeF | |||
QString | qString | |||
QStringView | qStringView | error | ||
QTime | qTime | VSCODEEXT-160 | ||
QUrl | qUrl | VSCODEEXT-159 | ||
QUuid | Error VSCODEEXT-161 | |||
Container Types | ||||
QByteArrayList | qByteArrayList | |||
QHash | qHash | |||
QMap | qMap | error | ||
QMultiHash | qMultiHash | |||
QSet | qSet | |||
QVarLengthArray | qVarLengthArray | error | ||
std::map<int, QString> | stdMap | |||
std::unordered_map<int, QString> | stdUnorderedMap | |||
std::unordered_multimap<int, QString> | stdUnorderedMultimap | |||
std::unordered_set<std::string> | stdSet | |||
Variant Types | ||||
QVariant | v_null; | |||
QVariant | v_bool | error | ||
QVariant | v_int | error | ||
QVariant | v_uint | error | ||
QVariant | v_double | error | ||
QVariant | v_qChar | error | ||
QVariant | v_qString | error | ||
QVariant | v_qByteArray | error | ||
QVariant | v_nullPtr | error | ||
QVariant | v_voidStar | error | ||
QVariant | v_long | error | ||
QVariant | v_longLong | error | ||
QVariant | v_short | error | ||
QVariant | v_char | error | ||
QVariant | v_char16 | error | ||
QVariant | v_char32 | error | ||
QVariant | v_ulong | error | ||
QVariant | v_ulongLong | error | ||
QVariant | v_ushort | error | ||
QVariant | v_schar | error | ||
QVariant | v_uchar | error | ||
QVariant | v_float | error | ||
QVariant | v_qfloat16 | error | ||
QVariant | v_qObjectStar | error | ||
QVariant | v_qCursor | error | ||
QVariant | v_qDate | error | ||
QVariant | v_qSize | error | ||
QVariant | v_qTime | error | ||
QVariant | v_qVariantList | error | ||
QVariant | v_qPolygon | error | ||
QVariant | v_qPolygonF | error | ||
QVariant | v_qColor | error | ||
QVariant | v_qColorSpace | error | ||
QVariant | v_qSizeF | error | ||
QVariant | v_qRectF | error | ||
QVariant | v_qLine | error | ||
QVariant | v_qStringList | error | ||
QVariant | v_qVariantMap | error | ||
QVariant | v_qVariantHash | error | ||
QVariant | v_qVariantPair | error | ||
QVariant | v_qIcon | error | ||
QVariant | v_qPen | error | ||
QVariant | v_qLineF | error | ||
QVariant | v_qTextFormat | error | ||
QVariant | v_qRect | error | ||
QVariant | v_qPoint | error | ||
QVariant | v_qUrl | error | ||
QVariant | v_qRegularExpression | error | ||
QVariant | v_qDateTime | error | ||
QVariant | v_qPointF | error | ||
QVariant | v_qPalette | error | ||
QVariant | v_qFont | error | ||
QVariant | v_qBrush | error | ||
QVariant | v_qRegion | error | ||
QVariant | v_qBitArray | error | ||
QVariant | v_qImage | error | ||
QVariant | v_qKeySequence | error | ||
QVariant | v_qSizePolicy | error | ||
QVariant | v_qPixmap | error | ||
QVariant | v_qLocale | error | ||
QVariant | v_qBitmap | error | ||
QVariant | v_qTransform | error | ||
QVariant | v_qMatrix4x4 | error | ||
QVariant | v_qVector2D | error | ||
QVariant | v_qVector3D | error | ||
QVariant | v_qVector4D | error | ||
QVariant | v_qQuaternion | error | ||
QVariant | v_qEasingCurve | error | ||
QVariant | v_qModelIndex | error | ||
QVariant | v_qPersistentModelIndex | error | ||
QVariant | v_qUuid | error | ||
QVariant | v_qByteArrayList | error | ||
QVariant | v_qVariant | error | ||
QVariant | v_userType | error | ||
Network Types | ||||
QHostAddress | qHostAddress | ptr only | ||
QHostAddress | qHostAddressV4 | ptr only | ||
QHostAddress | qHostAddressV6 | ptr only | ||
QHostInfo | qHostInfo | ptr only | ||
Gui Types | ||||
QBitmap | qBitmap | |||
QBrush | qBrush | |||
QCursor | qCursor | |||
QFont | qFont | |||
QImage | qImage | |||
QKeySequence | qKeySequence | |||
QMatrix4x4 | qMatrix4x4 | |||
QPalette | qPalette | |||
QPen | qPen | |||
QPicture | qPicture | |||
QPixmap | qPixmap | |||
QPolygon | qPolygon | warning | ||
QPolygonF | qPolygonF | warning | ||
QQuaternion | qQuaternion | |||
QRegion | qRegion | |||
QTransform | qTransform | |||
QVector2D | qVector2D | |||
QVector3D | qVector3D | |||
QVector4D | qVector4D | |||
Widget Types | ||||
QSizePolicy | qSizePolicy | error | ||
QWidget | qWidget | |||
From other test files here | ||||
QBasicAtomicInteger | Type is QAtomicOps<int> instead of QBasicAtomicInteger<int>
In Raw View value type is <int> instead of std::atomic<int> |
|||
QBasicAtomicPointer | Raw View type is QBasicAtomicPointer<void>::AtomicType instead of QBasicAtomicPointer<void> | |||
QChar QChar_Latin1 | Raw View is not as expected. No latin 1 nor unicode, only ucs. The type and value of ucs are as expected. Need to check those of latin 1 and unicode though. | |||
QChar QChar_non_Latin1 | See QChar_Latin1, values are not as expected | |||
QPair<int, int> | type show is QPair<int, int> instead of expected std::pair<int,int> |