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 | Result | Annotation |
---|---|---|
QPropertyData | ok | |
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> |
QPoint | Adapt expectation | No Type shown in Raw View |
QPointF | adapt expectation | No Type shown in Raw View |
QRect | Problem | Width and height not properly displayed |
QRect | Problem? | Raw View x and y replaced by xp and yp, width and height replaced by w and h. Type is qreal instead of double
No Type shown in Raw View |
QSize | Raw View width and height replaced by wd and ht
No Type shown in Raw View |
|
QSizeF | Raw View width and height replaced by wd and ht. Not rounded as expected.
No Type shown in Raw View |
|
QLine | Raw View start point and end point replaced by pt1 and pt2. Not rounded as expected.
No Type shown in Raw View |
|
QLineF | Raw View start point and end point replaced by pt1 and pt2. Not rounded as expected.
No Type shown in Raw View |
|
QChar QChar_default_constructed | Adapt expectations | Raw View is not as expected |
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 |
QString | Adapt expectations. | Look into binary view |
QStringView | Adapt expectations. | Type of the size not as expected. Look into binary view |
QByteArray | Adapt expectations. | Type of the size not as expected. Look into binary view |
QUrl | VSCODEEXT-159 | |
QDate | ||
QTime | VSCODEEXT-160 | |
QPair<int, int> | type show is QPair<int, int> instead of expected std::pair<int,int> | |
continue | ||
to do: add Qt types to debuggee.cpp |