Today we are proud to release VisualGDB 5.2 Beta 1. Aside from seamless unit test support for Embedded, Linux and Android projects, better Clang IntelliSense engine, Real-time Watch and a new MSBuild backend, it includes numerous usability improvements that make the development experience more streamlined and removes some annoying distractions. Let’s have a quick look through the main changes.
Asynchronous session start
One known bottleneck of VisualGDB 5.1 and earlier was the project deployment process. Uploading a large Linux or Android app or programming a big embedded project into the FLASH memory could take more than a few seconds and all you could do during that time was to watch the progress window. We’ve changed this in v5.2. Now all the preparation is done in the background and will not distract you from reading through the code, setting breakpoints or exploring it with Code Map.
If you were using VisualGDB with natvis files before, you could have found some difficulties with typedefs. A variable declared like this could work or not work with natvis based on your gdb version, compiler version and general luck:
typedef std::map<int, std::string> MyMap;
Starting from v5.2 this is no longer a problem. VisualGDB now automatically resolves typedefs for all variables and uses a cache to minimize the performance impact of it. We have also added an option to disable this behavior in case your gdb is too slow.
Another great natvis improvement in v5.2 is the performance. Viewing the contents of huge vectors and lists won’t horribly slow you down anymore. VisualGDB is now smart enough to only query the parts of them that are physically displayed on the screen.
For optimal performance you can exclude individual fields from being polled and VisualGDB will remember it next time you start a debug session.
We’ve also made it easier to track data from different sources on one graph – just enable the “Scale each variable independently” mode and VisualGDB will stretch each graph vertically so you could make sense of it even if one variable has a 1000x larger range than the others:
Better Project Properties
With VisualGDB 5.2 you can tweak your project without opening a modal “VisualGDB Project Properties” dialog. Instead simply open a .vgdbsettings file from Solution Explorer and VisualGDB will display it just like a normal document:
Hit ‘Ctrl-S’ or click “Save” on the toolbar to instantly apply your project changes.
Quick Debug Cross-Toolchains
Embedded CMake Projects
VisualGDB 5.2 makes it extremely easy to import an existing embedded project built with CMake. Just select it in the wizard and VisualGDB will automatically configure IntelliSense and debug settings for you:
Reference Highlighting on the Dark Theme
Easier Customization and Tweaking
The new version 5.2 makes your life easier if you are using a custom OS that reports things slightly differently. VisualGDB now comes with a RegularExpressions.xml file that stores the regular expressions used by VisualGDB to parse tool versions, error messages, thread IDs and other system information. If your custom OS reports it differently, making VisualGDB support it is now a matter of editing one text file:
VisualGDB 5.2 Beta 1 also includes the features introduced in the previous Preview builds. You can find more posts about those features here.