valgrind返回c程序返回值

时间:2015-04-18 07:56:07

标签: return-value valgrind

我在脚本中运行valgrind只能通过valgrind的返回值来查找内存问题(我不想在屏幕上打印任何内容)。 使用此行: valgrind --tool=memcheck --leak-check=full --error-exitcode=3 {c program} < {input file} > /dev/null 2> {errors redirection file} 我得到的返回值($?)是c程序的返回值,而不是valgrind的返回值。 我该怎么办呢?

谢谢:)

1 个答案:

答案 0 :(得分:0)

valgrind网站上的文档说:

&#34; - error-exitcode = [default:0]

如果Valgrind在运行中报告了任何错误,则指定要返回的备用退出代码。当设置为默认值(零)时,Valgrind的返回值将始终是正在模拟的过程的返回值。设置为非零值时,将返回该值,如果Valgrind检测到任何错误。这对于将Valgrind用作自动化测试套件的一部分非常有用,因为它可以通过检查返回代码轻松检测Valgrind报告错误的测试用例。&#34;

这意味着如果valgrind没有检测到错误,它仍然会返回被模拟过程的值。因此,您应该选择一些使用此选项时C程序无法返回的值。

  1. http://valgrind.org/docs/manual/manual-core.html