linux 如何在脚本中获取valgrind是否发现内存泄漏?

xqkwcwgp  于 2023-02-15  发布在  Linux
关注(0)|答案(1)|浏览(117)

我在一个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是否发现内存问题的唯一方法是打开日志。
有没有办法检查脚本是否有内存问题?如果有,怎么做?

mrphzbgm

mrphzbgm1#

您似乎在寻找--error-exitcode选项。
因为它默认为0,所以Valgrind的返回代码与进程的返回代码相同,请将其设置为非零值。
Valgrind core manual开始:
--error-exitcode=<number> [default: 0]
指定Valgrind在运行中报告任何错误时要返回的备用退出代码。设置为默认值时(零),则Valgrind的返回值将始终是正在模拟的进程的返回值。当设置为非零值时,如果Valgrind检测到任何错误,则返回该值。这对于将Valgrind用作自动测试套件的一部分非常有用。因为它使得检测Valgrind报告错误的测试用例变得很容易,只需检查返回代码。

相关问题