CLion 2022.3 Help

Valgrind memcheck

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 with 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 | 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.

Valgrind settings

Configure Valgrind on WSL

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:

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

    CMake profile for the WSL toolchain

Run targets

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

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

    Cl run valgrind gutter
  • 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:

    Running Valgrind from the main toolbar

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

Explore results

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

    Valgrind Memcheck output
  • 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).

Export and import results

  • To export the results, click the Export Cl valgrindexport b icon in the left pane of the Valgrind tab and specify the destination XML file:

    Export Valgrind results

    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.

Last modified: 11 January 2023