valgrind在日志文件中多次显示相同的内存泄漏

时间:2017-09-07 06:39:04

标签: memory-leaks valgrind

我在一家MnC软件公司工作。我的任务是修复软件中的内存泄漏。我正在使用valgrind memcheck工具。我使用'valgrind --leak-check = yes --log-file = vg.log'。我发现valgrind在vg.log中以不同的大小显示相同的内存泄漏倍数,而vg.log文件有200万行。因此,我无法确定哪个泄漏的尺寸最大。我的意思是哪一个是最大的泄漏。你有什么想法解决这个问题吗?我希望同样的内存泄漏应该在vg.log中使用聚合大小一次。我正在使用val3ind的val3.12.0版本。我正在使用Red Hat Enterprise Linux Workstation 6.5版。

2 个答案:

答案 0 :(得分:0)

泄漏是按照尺寸增加的顺序倾倒的。因此,最后一次泄漏是最大的泄漏。每个泄漏描述看起来都像

XX bytes in B blocks are definitely lost in loss record R of N

,其中

  • XX是该callstack泄漏的总大小
  • B是该callstack发生泄漏的次数。例如,如果4个块中的总数为4096个字节,则表示调用发生4次,每次泄漏为1024个字节
  • R是泄漏的运行计数
  • N是不同泄漏调用堆的总数

答案 1 :(得分:0)

实际上valgrind有一个--num-callers选项,可以用来引发不同类似的内存泄漏。