27

我在 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是否发现内存问题的唯一方法就是打开日志。

有没有办法检查脚本是否存在内存问题?如果是,如何?

4

1 回答 1

41

您似乎正在寻找--error-exitcode选项。

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

来自Valgrind 核心手册

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

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

于 2013-10-08T11:41:55.340 回答