有没有办法从我的代码中告诉 valgrind 何时开始以及何时停止检查内存泄漏?
我正在使用一个遗留测试框架,它必须与我的测试程序链接才能运行。该框架存在内存泄漏 - 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。