如何在不长时间盯着终端的情况下使用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。
我有很多可执行文件,想用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。