c - 如何让 valgrind 忽略特定行?

标签 c valgrind

例如

==26460== 2 bytes in 1 blocks are still reachable in loss record 2 of 105
==26460==    at 0x4C28BE3: malloc (vg_replace_malloc.c:299)
==26460==    by 0x580D889: strdup (in /usr/lib64/libc-2.17.so)
==26460==    by 0x4F50AF: init (init.c:468)
==26460==    by 0x406D75: main (main.c:825)

我不想检查 init.c:468: mode = strdup,我确定这只会 malloc 一次,并且会持续整个进程生命周期。

是否可以让 valgrind 不检查这一行?

最佳答案

正如我在评论中所说:我建议不要这样做。

但是 Valgrind 确实具有抑制警告的功能。 专用于该目的的功能支持抑制特定消息的最便捷方式:

--gen-suppressions=yes

这显然会为每个/任何生成的消息输出精确的抑制语法。

见FAQ中的5.1:
http://valgrind.org/docs/manual/faq.html#faq.writesupp

(我喜欢他们的风格:
“F:你能为我写……吗?”我期待一个完全足够的
“答:没有。”但他们真的回答了
“答:是的……”。超酷。)

关于c - 如何让 valgrind 忽略特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482390/

相关文章:

c - 解释 gprof 结果和粒度

c - C 中的全局变量

c - 子进程中的 Execl() 和父进程中的 wait()

c - 如何轻松打包分析核心转储所需的库(即 packcore)

c - 释放在简单链表中分配的内存 - C

Valgrind:如何强制它在不终止进程的情况下生成堆摘要?

C 程序中的核心转储

c - Valgrind 错误 "Invalid write of size 4"C

c - 使用 valgrind 和 gprof 分析 intel mkl 函数

c - 如何用枚举解释和调用函数