我认为我的valgrind安装已损坏

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

使用此简单代码

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 int main(){
  4     int n = 3;
  5     printf("%d \n", n);
  6     return 0;
  7 }

我收到此泄漏

enter image description here

我不知道该如何解决。我已经看过这篇文章Is my valgrind installation broken?,但我不明白如何解决。我有一个MacOS High Sierra 10.13.6https://i.stack.imgur.com/mX4NC.png

c memory-management memory-leaks out-of-memory valgrind
1个回答
0
投票

首先使用--gen-suppressions=all运行Valgrind,并在注释中给出了泄漏选项。您可能还想使用--log-file=my.log或类似的东西。

然后查看输出。您会看到类似

的内容
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   [leak type]
   [callstack]
}

将此文本复制到“ mysuppressions.supp”之类的文件中,将<insert_a_suppression_name_here>行重命名为有意义且唯一的内容。棘手的一点是选择要复制的调用堆栈部分。如果您复制太多行,则抑制将仅适用于您的特定情况。如果复制的行数太少,则抑制范围将太广,并且您可能会冒误报的风险。通常,您不希望抑制包含任何功能,仅包含系统功能。

使用抑制文件最后运行Valgrind

valgrind --suppressions=mysuppressions.sup ./bru.exe
© www.soinside.com 2019 - 2024. All rights reserved.