6

我有一组每晚运行的验收测试。我想使用 valgrind 自动检查我的代码中的内存泄漏,作为手动检查泄漏的额外保障。更新我的脚本以在 valgrind 下运行我的进程是微不足道的,但是,每个测试都会启动和停止许多进程,并且大约有 15000 个测试用例,所以我最终会得到数千个单独的报告。

是否有能够合并这些报告的工具?我见过 valkyrie,但根据文档,他们不支持 valgrind 3.5

4

3 回答 3

1

如果您的代码大部分是干净的,那么您可以保留错误情况。

如果您要使用正确的工具来组合输出,那么 valgrind xml 输出格式可能是正确的开始。至少解析不应该太难。您还可以将 valgrind 日志输出到不同的文件,以将其与程序的输出分开。您还可以让 valgrind 在检测到内存泄漏时给出错误--error-exitcode=

在比较泄漏时,您仍然必须确定什么是相同的内存泄漏。

于 2010-06-25T13:27:48.203 回答
0

解决您的问题的一种方法应该是添加选项,并在您的抑制文件--gen-suppressions=all中连接所有忽略的错误。您必须手动对真泄漏和假泄漏进行排序,但是一旦完成,valgrind 将只打印真正的泄漏。

然后,如果报告写了任何内容,那么您可能必须在继续之前解决内存泄漏问题。

--quiet选项是必要的:静默运行,只打印错误消息。如果您正在运行回归测试或有一些其他自动化测试机器,这很有用。

于 2010-07-22T08:49:57.253 回答
0

较新版本的 Valkyrie(Valgrind 的 GUI 伴侣)有您正在寻找的东西。

$ man valkyrie
NAME
   valkyrie - graphical front-end to the Valgrind suite of tools for debugging and profiling Linux executables

SYNOPSIS
   valkyrie [valkyrie-opts] [valgrind-opts] [prog-and-args]

<snip> 
   --merge <loglist>
          Merge multiple logfiles, discarding duplicate errors

还有一个仅限 CLI 的变体,称为vk_logmerge. valkyrie如果你在 Ubuntu 上,它在包中可用。

于 2017-01-10T20:20:17.137 回答