Valgrind In Clion

 

Using CLion with ml-cpp. CLion 2018.2 has added support for the compilation database project format. This tutorial shows how to create a compilation database for the ml-cpp project and integrate it with CLion. Note that from version 2020.2 CLion has support for Makefile Projects.While Makefile projects simplify the initial import of the project into CLion some major deficiencies exist. Getting Valgrind to Work with CLion on Windows 10 Ubuntu WSL I couldn't find this anywhere, and I finally figured it out after hours of tinkering. To whatever lost soul is trying to get this to work like I. How to Roslaunch Nodes in Valgrind or GDB Description: When debugging roscpp nodes that you are launching with roslaunch, you may wish to launch the node in a debugging program like gdb or valgrind instead. Doing this is very simple. Keywords: roslaunch, valgrind, gdb, pdb Tutorial Level: INTERMEDIATE Next Tutorial: Profiling roslaunch nodes.

Valgrind Memcheck is a tool for detecting memory-usage problems such as leaks, invalid memory access, incorrect freeing, and referencing undefined values.

Valgrind integration in CLion works on Linux, macOS, and Windows via WSL (see Valgrind on WSL ).

Configure Valgrind

  1. Install Valgrind on your system.

    For WSL, install Valgrind on your WSL instance (sudo apt-get install valgrind) and provide CLion with the path to the executable (see next steps).

  2. In CLion, go to Settings / Preferences Build, Execution, Deployment Dynamic Analysis Tools Valgrind.

  3. CLion will attempt to detect the Valgrind binary by searching in standard locations defined in the system PATH variable.

    In case of a non-standard Valgrind location, set the path manually in the Valgrind executable field.

  4. Specify analysis options or use the default ones.

  5. Optionally, configure the list of the suppression files. For example, you may want to add a suppression file to turn off the Valgrind checks for some particular libraries.

To use Valgrind on Windows via WSL, provide the 'subsystem' path to Valgrind, which is /usr/bin/valgrind by default, instead of the actual Windows location of the Valgrind binary. However, this path will not be valid until you select the CMake profile connected to the WSL toolchain. For this, do one of the following:

  • Set the WSL toolchain as default. This way, it will automatically connect to the default CMake profile:

  • Create a separate CMake profile, connect it to the WSL toolchain, and select this profile in the configurations switcher:

Valgrind

Valgrind Clion Tutorial

Run targets

Valgrind Windows 10

To run a target (application or test) with Valgrind Memcheck, do one of the following:

  • Click the gutter icon and select Run 'your_target_name' with Valgrind Memcheck option from the menu:

  • Select the desired Run/Debug configuration and call Run Run 'your_target_name' with Valgrind Memcheck from the main menu or click the dedicated toolbar icon:

If Valgrind was not configured previously, CLion will open the configuration dialog.

Explore results

Clion
  • When the launch is finished, open the Valgrind tab in the Run tool window.

  • The left-hand pane shows the list of all problems found by Valgrind Memcheck. Each entry includes the instruction pointer, problematic function name, and (if possible) the source file where the problem is located.

  • In the right-hand pane, you can find full stack frame description and the corresponding code preview (when possible).

    Press F4 to jump back to the source code.

Export and import results

  • To export the results, click the Export icon in the left pane of the Valgrind tab and specify the destination XML file: Note that the Export button is unavailable during execution.

  • To import the results, select Run Import Valgrind XML Results from the main menu and choose the XML file to import from.