VisualGDB

Serious Cross-Platform for Visual Studio!

Intuitive solution to complex problems

VisualGDB allows easily creating new Linux projects, importing existing projects, attaching to processes, debugging pre-built executables and opening crash dumps with just a few mouse clicks. It can build and debug code directly on Linux, on Windows with a cross-compiler, or target one Linux machine from another one.

VisualGDB takes care of source uploading, binary deployment, IntelliSense configuration, settings validation and many more, allowing you to focus on your code.

Cross-toolchains for popular boards

VisualGDB comes with cross-toolchains for many popular Linux boards like Raspberry Pi (see full list) and will automatically download and configure one after you select it in the wizard.

It will handle deployment, debugging, symbols and provide a simple interface for synchronizing the sysroot between your toolchain and the device. 

Advanced CMake Project Subsystem

VisualGDB brings in an unmatched degree of integration with CMake. Use Solution Explorer to manage complex CMake projects without ever needing to edit CMakeLists.txt files manually or remember the syntax:

  • See and edit individual targets and source files
  • Use VS property pages to edit common settings
  • Configure deployment settings for each target
  • View and set relations between targets

Forget about maintaining 2 parallel project systems - simply use Advanced CMake and let VisualGDB handle CMakeLists.txt for you.

Powerful Linux profiler

VisualGDB includes a powerful Linux profiler based on valgrind. It features a highly optimized super-scalable profiling database format, intuitive report viewer with instant searching and sorting capabiilities and a convenient annotation mode that explains the performance costs of each line in your source code and visualizes runtime relations between functions.

Advanced Debug Symbol Management

VisualGDB provides intuitive settings for fine-tuning debug symbols for large projects. You can pick which symbols will be automatically loaded, configure symbol indexing, automatically strip debug symbols when deploying binaries to targets, or load specific symbols just when you need them.

Integration with popular build systems

VisualGDB can create Linux projects using GNU Make, CMake and Qt QMake or import existing projects. Powerful GUI makes sense of various complex settings and handles IntelliSense for you so you don't need to worry about them.

Importing complex CMake projects is easy. VisualGDB will automatically configure IntelliSense for them no matter how complex your CMake files are.

Advanced Source Synchronization

VisualGDB includes SysprogsSync - a powerful file synchronization engine for keeping your remote source and binary folders up-to-date.

SysprogsSync handles recursive symlinks and long paths and quickly determines the minimal amount of files that needs to be updated.

For projects using the Advanced CMake subsystem VisualGDB can access sources directly over SSH.

An SSH client inside Visual Studio

Enjoy our built-in xterm-compatible terminal based on SmarTTY:

  • See your program output in a powerful terminal emulator
  • Open a background SSH shell with just one click
  • Quickly send files or entire directories in both directions
  • Support for mouse and function keys
  • Launch a multi-tabbed SSH client from any host selection dialog
  • Fast building and debugging - SSH connections are reused

Seamless unit test integration

VisualGDB supports CppUTest and GoogleTest frameworks for Linux projects out-of-the-box.

No matter if you build the projects remotely, or use a local cross-toolchain, you can use the regular Test Explorer window to run or debug tests on the Linux machine.

A separate command-line mode with XML reports makes continuous integration easy and straight-forward.

Intuitive code coverage analyzer

VisualGDB supports out-of-the-box integration with gcov. Simply enable code coverage  reporting for your projects via VisualGDB Project Properties and enjoy intuitive coverage reports with easy searching, filtering, sorting and line highlighting that helps you instantly locate missed spots in your code.

VisualGDB uses a highly optimized coverage database format to support instant search and highlighting even for huge projects.

Dynamic program analysis

VisualGDB includes out-of-the-box support for Valgrind dynamic analysis. Simply enable it via VisualGDB Project Properties and quickly check your program for hard-to-track memory access errors, memory leaks, race conditions and incorrect use of synchronization primitives and many more scenarios.

VisualGDB will install and configure Valgrind automatically, so you don't need to worry about PIDs, valgrind prefixes or multiple users running it at the same time.

Kernel-mode debugging with VisualKernel

You can easily build and debug your Linux Kernel modules using a separate VisualKernel product based on the VisualGDB engine.

Read more about VisualKernel.