我在脚本中运行valgrind只能通过valgrind的返回值来查找内存问题(我不想在屏幕上打印任何内容)。
使用此行:
valgrind --tool=memcheck --leak-check=full --error-exitcode=3 {c program} < {input file} > /dev/null 2> {errors redirection file}
我得到的返回值($?)是c程序的返回值,而不是valgrind的返回值。
我该怎么办呢?
谢谢:)
答案 0 :(得分:0)
valgrind网站上的文档说:
&#34; - error-exitcode = [default:0]
如果Valgrind在运行中报告了任何错误,则指定要返回的备用退出代码。当设置为默认值(零)时,Valgrind的返回值将始终是正在模拟的过程的返回值。设置为非零值时,将返回该值,如果Valgrind检测到任何错误。这对于将Valgrind用作自动化测试套件的一部分非常有用,因为它可以通过检查返回代码轻松检测Valgrind报告错误的测试用例。&#34;
这意味着如果valgrind没有检测到错误,它仍然会返回被模拟过程的值。因此,您应该选择一些使用此选项时C程序无法返回的值。