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, 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() 12 * 3600 + 34 * 60 + 56 | 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 | |||
| 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>
} |