提问人:Stackyquest 提问时间:9/27/2023 最后编辑:Paul FloydStackyquest 更新时间:9/28/2023 访问量:300
如何运行 Valgrind 和其他工具来检查 Visual Studio 代码中的内存泄漏?
How to run Valgrind and other tools to check memory leaks in Visual studio code?
问:
我已经在 Visual studio 代码中安装了“Valgrind 任务集成”扩展,并在重新启动 VS 代码并在终端中键入以下 Valgrind 命令, “valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=valgrind-out.txt .mem_leak_fix” 用于修复如下所示的示例 C 测试代码的内存泄漏问题,
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int* mptr = malloc(sizeof(int));
int* mptr1 = malloc(sizeof(int));
*mptr = 10;
*mptr1 = 20;
printf("mptr: %d\n",*mptr);
printf("mptr1: %d\n",*mptr1);
free(mptr1);
mptr1=NULL;
return 0;
}
我得到“术语'valgrind'未被识别为 cmdlet 的名称, 函数、脚本文件或可操作程序。检查名称的拼写,或者 如果包含路径,请验证该路径是否正确,然后重试”。
我已经搜索了很长时间,以了解如何在 Visual Studio 中执行内存泄漏检查很长时间。 请告诉我如何在 Visual Studio 中安装内存泄漏调试器工具并执行内存泄漏操作。请帮帮我
答:
学习在终端中运行 Valgrind。开始会容易得多,因为你只会学习一件事 - Valgrind,而不是两件事 - Valgrind 和 VS 代码。
接下来,从最简单的选项开始。您不应该从 .我只建议在你发现错误后。--verbose
--track-origins=yes
Valgrind 不能在 Windows 上本机运行。您需要安装其中一个受支持的平台,请参阅 https://valgrind.org/info/platforms.html。您可以使用 WSL2 https://learn.microsoft.com/en-us/windows/wsl/install 或使用 VirtualBox 或 VMware 或类似的东西。
评论
valgrind
-fsanitize=address -g -O0