如何在不长时间盯着终端的情况下使用valgrind检查很多可执行文件?

How to use valgrind to check many executable files without staring at the terminal for a long time?

我有很多可执行文件,想用valgrind做内存检查

我正在使用以下命令进行内存检查:

valgrind -q ./a1.out
valgrind -q ./a2.out
...
valgrind -q ./a100.out

我必须盯着终端看半天,看看我的代码有没有内存问题。

valgrind return 对我们有什么价值吗? 该值代表是否存在问题。 而shell可以对值进行操作。所以我们可以写一些脚本,自动得出可执行文件有没有问题的结论。

例如,我想要这样的东西:

exist_problem = valgrind -q ./a1.out

if [exist_problem == no]
   printf "ALL PASS\n"
fi

提前致谢。

查看 valgrind 选项

--error-exitcode=<number> exit code to return if errors found [0=disable]

如果你使用memcheck,你还可以定义什么样的泄漏是错误的:

--errors-for-leak-kinds=kind1,kind2,..  which leak kinds are errors?
                                        [definite,possible]

最后,您还可以将 valgrind 输出重定向到文件,使用

--error-markers=<begin>,<end> add lines with begin/end markers before/after
                          each error output in plain text mode [none]

并在输出文件中进行 grep。