All posts by Ivan Shcherbakov

VisualGDB 6.0 is out of Beta

Today we are happy to announce the stable release of VisualGDB 6.0. If you haven’t tried the Beta releases yet, the biggest feature to check out would be the new Tracing Engine.

It allows placing tracepoints anywhere in the embedded code that will record the data you selected, with minimal disruptions to the program flow:Tracepoints run directly on the target and store the collected data in a circular buffer inside the device’s memory, so they are not affected by JTAG latency, and generally run very fast.

You can step through the recorded events while the program is still running, or save them into a report file, and review it later:Tracing makes it easy to debug real-time code where stopping the target even for a few milliseconds is not acceptable. Think logging USB requests, recording DMA state at different stages of signal generation, storing every sample coming from an ADC, logging every thread switch, etc.

You can find various tutorials on software tracing here, and more are on the way!

If you have already tried the Betas, the final 6.0 release brings numerous usability improvements to tracing: you can now format pointers values as [nearest symbol  + offset], record void * variables as dynamically-sized byte arrays, properly format IP addresses, dump multiple trace events into easy-to-read text files, or convert the trace reports into a machine-readable XML format.

Other v6.0 changes include a newer IntelliSense engine based on Clang 16.0, full support for ARM64 hosts (e.g. Macbook), Unlimited FLASH breakpoints on STM32 with OpenOCD, and numerous other fixes and usability improvements.

Try it out

You can download VisualGDB 6.0 here or use the VisualGDB Package Manager to update from an older version. If you have any questions or suggestions about the new release, do not hesitate to reach out to us.

VisualGDB 6.0 – Live Tracing for Embedded Targets

One of the toughest things about debugging embedded systems is that setting a breakpoint isn’t always an option. Sometimes, you don’t know where exactly the problem is until everything crashes. Sometimes, you cannot pause your device for a couple of seconds because it’s continuously talking to other parts of the system. Even if you can, good luck finding that inconsistency among 100 USB packets handled by your device within the past second.

VisualGDB 6.0 fixes this once and for all with the new software-based Live Tracing – a mechanism for setting tracepoints and recording what exactly the application is doing without having to stop it: Continue reading VisualGDB 6.0 – Live Tracing for Embedded Targets

Introducing Advanced Linux Kernel Tracing

Today we are proudly releasing VisualKernel 4.0 that introduces a huge usability improvement to kernel debugging workflows.

The Achilles’ heel of kernel debugging is trying to make sense of a complex live system running many operations simultaneously. Breakpoints and stepping provide some insights, but having the entire system stopped in the debugger often has side effects and breaks unexpected things.

VisualKernel 4.0 fixes this with Live Tracing – a new mechanism that allows quickly capturing, recording and reviewing arbitrary data at any point in time that could be interesting: Continue reading Introducing Advanced Linux Kernel Tracing

Introducing Code Explorer

One of the major design goals of VisualGDB is to help our users easily navigate large C/C++ code bases. This is possible due to our heavily optimized Clang-based IntelliSense engine, that can replace the regular VC++ IntelliSense for VisualGDB projects. It uses multiple threads to fully analyze the entire codebase and build a detailed map of your classes, functions, methods, and relations between them. This has enabled features like CodeJumps and integration with Visual Studio’s Code Map.

VisualGDB 5.6 introduces another feature that will save you time dealing with large projects: Code Explorer. And in this post I will give you a tour of its main highlights. Continue reading Introducing Code Explorer

Announcing Visual Studio 2022 Support

When Microsoft first announced that the upcoming Visual Studio 2022 is moving to 64 bits, they caught us by surprise.  Microsoft products are known for great backward compatibility, but that comes with a hefty cost of keeping alive numerous interfaces and technologies introduced several releases ago. Native components have to work side-by-side with managed components. COM interfaces have to work together with MEF interfaces. Legacy synchronous API should not break the new asynchronous one.

And to my great pleasure (and to Microsoft’s credit) they have done a tremendous job moving the unimaginably complex Visual Studio environment the x64 platform. Sure, it did require some changes on our side, but the overall process went much smoother than I could have anticipated.

What it means for our users, is that VisualGDB is now fully compatible with Visual Studio 2022 Preview. Simply download VisualGDB 5.6 Beta 4 and it will automatically detect your VS2022 installation and will integrate with it, so you can keep enjoying the best of both VisualGDB and Visual Studio without any distractions.