1

我使用 massif、sgcheck 和 memcheck valgrind 的模块来检查 ac/c++ 项目。我想知道是否可以让 valgrind 忽略部分代码。当我在我的项目上运行它时,我有类似 248 个由 opencv 调用生成的不同“错误”错误。这是正常的,但目前我无法真正避免这个调用,这就是为什么我想让 valgrind 忽略这部分代码。

我尝试通过添加--gen-suppressions=all --log-file=valgrind.out到我的命令行来生成一个文件来“抑制”他的错误,以生成一个文件来忽略错误。但是有一些“手动过程”要做,比如在日志文件中删除 248 bloc,我想避免它。

所以:你知道是否有办法(可能有点像 ifdef 或 ifndef)让 valgrind 忽略一部分代码?

谢谢 !

4

1 回答 1

0

最后我使用了--gen-suppressions=all --log-file=valgrind.out

  • 添加--gen-suppressions=all –log-file=valgrind_tmp.out到 memcheck 命令
  • sed '/==/ d' valgrind_tmp.out > valgrind.out删除所有无用的行
  • 现在运行 memcheck--suppressions=valgrind.out

所以我没有找到让 memcheck 避免特定部分代码的方法,我只是过滤错误输出。

于 2018-01-11T16:01:00.370 回答