【问题标题】:Should I Suppress? If so How To Suppress from Makefile我应该压制吗?如果是这样,如何抑制 Makefile
【发布时间】:2014-12-08 18:52:59
【问题描述】:

我运行了几个测试,最后我运行 Valgrind 来验证我的库内存使用情况。 Valgrind 一直抱怨:

==27022== HEAP SUMMARY:
==27022==     in use at exit: 6,139 bytes in 3 blocks
==27022==   total heap usage: 609 allocs, 606 frees, 19,877,073 bytes allocated
==27022== 
==27022== 32 bytes in 1 blocks are still reachable in loss record 1 of 3
==27022==    at 0x4A08121: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==27022==    by 0x3A1A60168F: _dlerror_run (in /usr/lib64/libdl-2.17.so)
==27022==    by 0x3A1A601197: dlsym (in /usr/lib64/libdl-2.17.so)
==27022==    by 0x3A9D8A796D: ??? (in /usr/lib64/nvidia/libGL.so.331.67)
==27022==    by 0x3A9DAE965F: ??? (in /usr/lib64/nvidia/libGL.so.331.67)
==27022==    by 0x3A9DB1CB1F: ???
==27022==    by 0x3A9D8CD36A: ??? (in /usr/lib64/nvidia/libGL.so.331.67)
==27022== 
==27022== 83 bytes in 1 blocks are still reachable in loss record 2 of 3
==27022==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==27022==    by 0x3A1A2863F9: strdup (in /usr/lib64/libc-2.17.so)
==27022==    by 0x3A9D8A964E: ??? (in /usr/lib64/nvidia/libGL.so.331.67)
==27022==    by 0x6578652F32322F: ???
==27022== 
==27022== 6,024 bytes in 1 blocks are definitely lost in loss record 3 of 3
==27022==    at 0x4A08121: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==27022==    by 0x3A9D8C032E: ??? (in /usr/lib64/nvidia/libGL.so.331.67)
==27022== 
==27022== LEAK SUMMARY:
==27022==    definitely lost: 6,024 bytes in 1 blocks
==27022==    indirectly lost: 0 bytes in 0 blocks
==27022==      possibly lost: 0 bytes in 0 blocks
==27022==    still reachable: 115 bytes in 2 blocks
==27022==         suppressed: 0 bytes in 0 blocks

这些似乎与我的图书馆无关。我应该担心这些警告吗? 还是我应该尝试抑制这些泄漏?如果我应该抑制从 Makefile 中执行此操作的最干净的方法是什么?

【问题讨论】:

    标签: c++ makefile valgrind suppression


    【解决方案1】:

    很难说你是否应该禁止它们,但如果你确定你的库是干净的,你可以生成一个suppression file

    然后您可以使用“--suppressions”标志调用 Valgrind。如果您的抑制文件的名称是 suppfile:

    > valgrind --suppressions=suppfile ./program
    

    如果您从 Makefile 执行 valgrind,请将抑制标志添加到 valgrind 命令。您还可以创建一个default options file“.valgrindrc”,将其放在与 Makefile 相同的目录中。在这个文件中,输入你想要的任何参数。

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多