我不认为有一种方法可以像使用 callgrind 那样以编程方式启用/禁用 Valgrind memcheck?(启动/停止仪器)。
这很痛苦,速度慢得无法使用(如果您要测试的代码自动启动并且您只是让它运行,这没关系),但是如果不单击应用程序中的几个按钮,我实际上无法进入重要的代码,它被呈现完全没有反应。(我的代码是另一个应用程序的插件)
谢谢
原则上这几乎是不可能的。如果 valgrind 不知道您所有内存的完整历史记录,它如何确定某事是泄漏,甚至是对无效内存的引用?
You can't stop/start instrumentation but you can programmatically do incremental leak checks. See http://valgrind.org/docs/manual/mc-manual.html#mc-manual.clientreqs and specifically VALGRIND_DO_LEAK_CHECK, VALGRIND_DO_ADDED_LEAK_CHECK and VALGRIND_DO_CHANGED_LEAK_CHECK.