如何得到脚本是否valgrind发现内存泄漏?

我在bash脚本中运行valgrind,并将valgrind的输出引导到一个文件中。 喜欢这个 :

valgrind --leak-check=full --show-reachable=yes --xml=yes --xml-file=unit_tests_valgrind.out.xml ./unit_tests_runner 

RET_VALUE=$? 是要把程序的返回值(unit_tests_runner在上面),而不是从valgrind。 而检查valgrind是否发现内存问题的唯一方法是打开日志。

有没有办法检查脚本是否有内存问题? 如果是的话,怎么样?

你似乎在寻找--error-exitcode选项。

由于默认为0 ,因此Valgrind的返回码与进程的返回码相同。 将其设置为非零值。

来自Valgrind核心手册 :

--error-exitcode=<number> [default: 0]

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