在应用程序代码中使用时是否有任何可用的 Valgrind 函数或宏,我可以生成特定函数的内存泄漏。 换句话说,我需要考虑在调用特定应用程序函数后没有内存泄漏。
最佳答案
Valgrind 有两种机制用于 Valgrind 和被测应用程序之间的交互。
- gdbserver commands这里是memcheck monitor commands .您可以在 Valgrind 下启动您的应用程序,然后附加 gdb。然后你可以发出命令来做一些事情,比如在那一刻生成泄漏报告。在您的情况下,您可以使用
leak_check
命令。 - Valgrind client requests还有here .要使用它,您需要包含诸如“valgrind/memcheck.h”之类的 Valgrind header 并重新编译。然后有大量宏可用于执行查询内存状态等操作。在您的情况下,您可以使用
VALGRIND_DO_LEAK_CHECK
。
几年前我写了一篇关于使用这些机制的文章,可在线获取 here .
关于c++ - 客户端代码 : Memory leak for particular functions 中的 Valgrind Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50201265/