客户端代码中的 Valgrind 挂钩:特定函数的内存泄漏

Valgrind hooks in client code : Memory leak for particular functions

在应用程序代码中使用时是否有任何可用的 Valgrind 函数或宏,我可以通过特定函数生成内存泄漏。 换句话说,我需要考虑调用特定应用程序函数后没有内存泄漏。

Valgrind 有两种机制用于 Valgrind 和被测应用程序之间的交互。

  1. gdbserver commands and here for memcheck monitor commands。您可以在 Valgrind 下启动您的应用程序,然后附加 gdb。然后你可以发出命令来做一些事情,比如在那一刻生成泄漏报告。在您的情况下,您可以使用 leak_check 命令。
  2. Valgrind client requests and also here。要使用它,您需要像 "valgrind/memcheck.h" 一样包含 Valgrind headers 并重新编译。然后有大量宏可用于执行查询内存状态等操作。在您的情况下,您可以使用 VALGRIND_DO_LEAK_CHECK.

几年前我写了一篇关于使用这些机制的文章,可在线获取here