debugging - valgrind 多重类型抑制

标签 debugging memory-leaks profiling valgrind

我正在为 valgrind 编写一个抑制文件,我有一个这样的文件(取自核心手册)

{
  libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0
  Memcheck:Value4
  obj:/usr/X11R6/lib/libX11.so.6.2
  obj:/usr/X11R6/lib/libX11.so.6.2
  obj:/usr/X11R6/lib/libXaw.so.7.0
}

我也想抑制这个

{
  libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0
  Memcheck:Cond
  obj:/usr/X11R6/lib/libX11.so.6.2
  obj:/usr/X11R6/lib/libX11.so.6.2
  obj:/usr/X11R6/lib/libXaw.so.7.0
}

我真的需要编写两个抑制来实现此目的吗?我搜索了手册和在线文档,但没有找到答案。我还尝试了 MemCheck:* 但 valgrind 退出并显示代码 1。

所以,问题是,我不能将多种类型的错误合并到一个 memcheck 抑制中吗?

最佳答案

没有。对于多种抑制类型,即使调用上下文相同,也需要编写不同的抑制 block 。

也可以在 Valgrind 的文档中看到:http://valgrind.org/docs/manual/mc-manual.html#mc-manual.suppfiles只能有一种抑制类型。

关于debugging - valgrind 多重类型抑制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597870/

相关文章:

c++ - 如何确定 valgrind/callgrind 终止进程的原因

C++ - 如何在 lldb/Xcode 中获取 std::vector 对象的地址

delphi - 为什么不调用 Destroy?

Java 内存泄漏 - jmap 不显示类,但 jstat 显示

python - 寻找一种方法来阻止这个基本程序中的内存泄漏

java - 有没有办法连接探查器 OSE JAVA 应用程序 Pod?

android - 如何在没有 DDMS 的情况下打开 .trace 文件格式(traceview)?

c - DDD - 部分源文件

python - 无法附加到调试器中的进程

debugging - 除了测试现有测试的覆盖率之外,是否还有软件故障注入(inject)的用途?