[Development] [Windows] State of the Qt6 natvis file

Jörg Bornemann joerg.bornemann at qt.io
Mon Mar 3 12:16:03 CET 2025


On 2/28/25 5:53 PM, Nicolas Arnaud-Cormos wrote:

>> Embedding into the DLLs doesn't cut it, unfortunately, as Kai already 
>> pointed out. But we could add CMake code that embeds the natvis files 
>> in the user's binaries (as Marcus already wrote).

> Here be dragons!
> I'm not an expert, but I suspect your natvis license prevent from 
> integrating into any customer binaries using the free version of Qt... 
> or at least it's a very gray area.

The natvis files are currently licensed under:
     LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

The reason for that is most probably that this is the default license 
for the vstools repo. I don't see a reason to be that restrictive. We 
should maybe treat this as build system file and use commercial+BSD3 instad.

>> We never continued with this, because we reconsidered and wanted to 
>> add the natvis files to the Qt repositories instead. Here's a deferred 
>> change that does this: https://codereview.qt-project.org/c/qt/qtbase/ 
>> +/560899

> What does deferred mean here?
>   In my book, it usually means "nice to have when someone will have 
> time", which is basically never ;)

It could mean that we'll resume work on that "when it becomes more 
important" or "more people care about this". Looks like the latter 
already became a thing.

> Interesting, I was wondering if it was possible to do automatic tests of 
> natvis files... guess it's probably very difficult without instrumenting 
> Visual Studio itself.

For Qt VS Tools, we have a Squish instance running. One idea would be to 
test the debug visualizers with that.

>> We can probably improve things already by ditching the testing 
>> attempt, but keep in mind that we're dealing with three different 
>> natvis dialects:
>> - full blown VS natvis
>> - reduced (or just old?) natvis of cdb
>> - severely reduced natvis subset of cppdbg for VS Code
>>
>> The cdb one isn't that important, unless Qt Creator starts to use that.
> I would ditch both cdb and cppdbg and focus only on Visual Studio and 
> cppvsdbg.

That would exclude VS Code users on non-MSVC platforms.
But for starters one could focus on the VS thing.



Cheers,

Joerg

-- 
Jörg Bornemann | The Qt Company


More information about the Development mailing list