如何运行Valgrind等工具来检查Visual Studio代码中的内存泄漏?

问题描述 投票:0回答:1

我已经在 Visual Studio Code 中安装了“Valgrind Task Integration”扩展,重新启动 VS Code 并在终端中键入以下 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中安装内存泄漏调试器工具并执行内存泄漏操作。请帮助我解决这个问题

c memory-leaks valgrind dangling-pointer
1个回答
0
投票

学习在终端中运行 Valgrind。一开始就会变得非常容易,因为你只会学习一件事 - Valgrind,而不是两件事 - Valgrind 和 VS code。 接下来,从最简单的选项开始。您不应该以

--verbose

开头。我只推荐

--track-origins=yes
after
你发现错误。 Valgrind 不能在 Windows 上本地运行。您需要安装受支持的平台之一,请参阅

https://valgrind.org/info/platforms.html

。您也许可以使用 WSL2 https://learn.microsoft.com/en-us/windows/wsl/install 或使用 VirtualBox 或 VMware 或类似工具。

© www.soinside.com 2019 - 2024. All rights reserved.