Valgrind Memcheck
Valgrind Memcheck 是一个工具,用于检测内存使用问题,例如泄漏、无效的内存访问、不正确的内存释放以及未定义的值引用。
在 CLion 中,Valgrind 集成可在 Linux、macOS 和 Windows 上使用 WSL (请参阅 Valgrind on WSL)。
配置 Valgrind
在您的系统上 安装 Valgrind。
在 CLion 中,转到 。
CLion 将尝试检测系统中设置的 Valgrind 二进制文件
PATH。如果 Valgrind 位于非标准位置,请在 Valgrind 可执行文件 字段中手动提供路径。
指定 分析选项或使用默认选项。
可选地,配置 抑制文件的列表。
例如,可以使用抑制文件关闭对特定库的 Valgrind 检查。

在 WSL 上配置 Valgrind
在 中,提供 Valgrind 的“子系统”路径,默认为 /usr/bin/valgrind ,而不是 Valgrind 二进制文件的实际 Windows 位置。
激活与 WSL 工具链连接的 CMake 配置文件。
为此,请执行以下操作之一:
将 WSL 工具链设置为默认。 这样,它将自动连接到默认的 CMake 配置文件:

创建一个单独的 CMake 配置文件,将其连接到 WSL 工具链,并在配置切换器中选择此配置文件:

运行目标
要使用 Valgrind Memcheck 运行目标(应用程序或测试),请执行以下操作之一:
点击
图标,并从菜单中选择 使用 Valgrind Memcheck 运行 'your_target_name' 选项:

选择所需的 运行/调试配置,并从主菜单调用 或点击专用工具栏图标:

如果之前未配置 Valgrind,CLion 将打开配置对话框。
查看结果
启动完成后,在 Valgrind 选项卡中打开 运行 工具窗口。

左侧窗格显示 Valgrind Memcheck 找到的所有问题的列表。 每个条目包括指令指针、问题函数名称,以及(如果可能)问题所在的源文件。
在右侧窗格中,您可以找到完整的堆栈帧描述和相应的代码预览(如果可能)。
导出和导入结果
要导出结果,请点击 导出
图标,位于 Valgrind 选项卡的左侧窗格中,并指定目标 XML 文件: 
注释 导出按钮在执行期间不可用。
要导入结果,请从主菜单中选择 ,并选择要导入的 XML 文件。