Qt VS Code Extensions Manual Tests Debugger: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 629: Line 629:
|
|
| error
| 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
|
|
|+
|QPolygonF
|qPolygonF
|
|
|+
|QQuaternion
|qQuaternion
|
|
|+
|QRegion
|qRegion
|
|
|+
|QTransform
|qTransform
|
|
|+
|QVector2D
|qVector2D
|
|
|+
|QVector3D
|qVector3D
|
|
|+
|QVector4D
|qVector4D
|
|
|+
|+
|QBasicAtomicInteger
|QBasicAtomicInteger

Revision as of 09:23, 8 April 2025


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, 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 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
QTime qTime VSCODEEXT-160
QUrl qUrl VSCODEEXT-159
QUuid VSCODEEXT-161
Container Types
QByteArrayList qByteArrayList
QHash qHash
QMap qMap
QMultiHash qMultiHash
QSet qSet
QVarLengthArray qVarLengthArray
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
QPolygonF qPolygonF
QQuaternion qQuaternion
QRegion qRegion
QTransform qTransform
QVector2D qVector2D
QVector3D qVector3D
QVector4D qVector4D
QBasicAtomicInteger Problem or adapt expectation Type is QAtomicOps<int> instead of QBasicAtomicInteger<int>

In Raw View value type is <int> instead of std::atomic<int>

QBasicAtomicPointer Adapt expectation? Raw View type is QBasicAtomicPointer<void>::AtomicType instead of QBasicAtomicPointer<void>
QChar QChar_Latin1 Adapt expectations. Problem? 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 Adapt expectations. See QChar_Latin1, values are not as expected
QPair<int, int> type show is QPair<int, int> instead of expected std::pair<int,int>