是否可以在 valgrind 中设置基准内存使用量以进行泄漏检测?

Is it possible to set a baseline memory usage in valgrind for leak detection?

有没有办法从我的代码内部告诉 valgrind 何时开始以及何时停止检查内存泄漏?

我正在使用一个遗留测试框架,它必须 link 与我的测试程序一起使用才能 运行。该框架中存在内存泄漏 - valgrind 显示大约 50KB 的内存尚未释放,但可通过试探法访问。这很烦人,因为我必须牢记这个数字以查看我的代码泄漏了多少内存。如果我可以告诉 valgrind 在我的第一个测试开始时开始收集内存统计信息,并在最后一个测试结束时停止收集,那将会方便得多。有 API 吗?

valgrind memcheck 允许进行“差异”泄漏搜索。差异泄漏搜索报告先前泄漏搜索与当前情况之间的增量。

您可以在 shell 或 gdb 中使用带有 vgdb 的监视器命令来执行此类差异泄漏搜索。参见 https://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands

您还可以使用程序中的客户端请求 VALGRIND_DO_CHANGED_LEAK_CHECK,请参阅 https://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.clientreqs