VisualStudio

Win: run script after executing the VisualStudio-environment-command

Written by  on July 11, 2019

Problem: our CMakeLists.txt contained one specific variable which is just set via the VisualStudio-command-prompt. But I did not want to start that cmd, then execute our “start IDE”-script from there. Naa, too much clicks 😉
Copy this as bat-file to the directory where the qtcreator.bat would be.

Enable Profiling on Windows even with Meltdown-patches

Written by  on September 25, 2018

Helped with Visual Studio 2015. Should also work for 2013 and 2017.

Cppdepend: measure defects (code smells), cyclomatic complexity …

Written by  on September 21, 2018

As every one knows: I am a fan of objective measurements in the quality and quantity of code. Another nice statistics-generator for such a task is: cppdepend (trial is free for the first month).

It can detect some mistakes and deviations from common coding guidelines (like MISRA) and supports your judgment with some figures.
Cullendula for instance has the estimated development effort of 13 days (right now, v0.4.1) and a technical debt-rating of A. Which is great! 🙂


MPC: adding additional DEFINES

Written by  on May 25, 2018

Some weeks ago I noticed how the qDebug()-output could be enriched, so that in bigger solutions with a lot of different “unknown” components a reported error could be immediately pinned. And you save writing always __FILE__ and __LINE__. Referres to this post.
But the problem was that with the mpc-buildsystem it was unknown to me how to force it to put this DEFINE into the vcxproj-files.

It can be done via the “macros”-statement!

So I worked on my Python-skills and wrote a short script which iterates the given path recursively and fixes all mpc-files by checking for the position of the line with the last closingbrace “}” and then it adds before that position the line. Of course, the experts know several thousand ways to improve that script – but I am currently happy with it. It works, it is debug-able (.sh, I look at you!) and I will use the skeleton also for some other tasks.
It can be found (like most Python-snippets) at: https://github.com/marcelpetrick/pythonCollection

Preventing the crash of the performance-profiler from Visual Studio (2013-2017) due to Meltdown-/Spectre-patches

Written by  on May 24, 2018

I needed some analytical help from Visual Studio (due to the fact that MTuner and AQTimer could not work properly with our suite). So, I build my solution, fire up the “Performance Profiling” in VS2015 and *zump* computer reboots.
Discussions and investigations led to the thesis that some Windows-patches are the culprit, because they prevent that previously used hooks are usable.
So, setting those two lines in an admin-enabled cmd.exe (plus reboot) lead to alleviation:

static code analysis: PVS Studio

Written by  on May 4, 2018

I am using a new static code analysis-tool for some weeks now and it turns out quite handy: PVS Studio.
It integrates quite well into Visual Studio and you can run the analysis of projects or the whole solution. Doing this can take a while, because all includes are analyzed as well – which is nice. For a single developer a trial-license is for evaluation enough – if you can refrain from the really nice “jump to the culprit”-functionality.
It looks like it detects more errors than cppcheck (another tool which I use now for years on several platforms) and without doubt: none of the reported lines were false positives!

Of course, there is always the discussion with colleagues if those tools help. But I will repeat it again: why not buy & apply them and get a lot of troubleshooting for zero investment of creativity and time!
The screenshot hints out (for instance) that some breaks are missing in the switch-case – and yes, the resulting symptoms were already reported as bug in JIRA.

QT_MESSAGELOGCONTEXT: more detailed qDebug()

Written by  on April 19, 2018

Add to your environment:

Windows: set either via “set” or via RapidEnvironmentEditor.
In case of a no-debug-build, add QT_MESSAGELOGCONTEXT to DEFINES in the pro-file.

(Open question: if there are just mpc/vcxproj-files, then how to trigger?)

related sources:
* https://woboq.com/blog/nice-debug-output-with-qt.html
* https://fecub.wordpress.com/2015/11/04/better-debug-output-using-qt_message_pattern/
* http://doc.qt.io/qt-5/qmessagelogcontext.html#details

Convert *.pro to *.vcxproj (qmake to Visual Studio-project)

Written by  on April 5, 2018

0. Change this particualar line inside the *.pro:

1. run qmake against that pro-file
2. load the vcxproj with Visual Studio

edit: or do it with the original pro-file just like the wiki.qt.io suggests:

VS2015: after start the solution-explorer just shows error-messages ..

Written by  on March 29, 2018

Error message:
Exception details:
System.ComponentModel.Composition.ImportCardinalityMismatchException: No exports were found that match the constraint:
ContractName

Delete that folder:
%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache

Found via SO..

VisualStudio-Addin for Qt

Written by  on March 22, 2018

The source for the current downloads: https://download.qt.io/official_releases/vsaddin/ (for MSVC 2013, 2015 and 2017), because I had to (again) search for the installation-files.