我不认为有一种方法可以用callgrind以编程方式启用/禁用Valgrind memcheck吗? (开始/停止仪器)。
这很痛苦,速度非常慢(如果您要测试的代码会自动启动并且您只是让它继续运行,那就没关系),但是如果不点击应用程序中的几个按钮,我实际上无法进入重要的代码,这使得完全没有反应。 (我的代码是另一个应用程序的插件)
由于
答案 0 :(得分:3)
原则上几乎是不可能的。如果valgrind不知道你所有记忆的完整历史,它怎么能确定某些东西是泄密,甚至是无效记忆的引用呢?
答案 1 :(得分:2)
您无法停止/启动检测,但您可以通过编程方式执行增量泄漏检查。请参阅http://valgrind.org/docs/manual/mc-manual.html#mc-manual.clientreqs,特别是VALGRIND_DO_LEAK_CHECK,VALGRIND_DO_ADDED_LEAK_CHECK和VALGRIND_DO_CHANGED_LEAK_CHECK。