mtrace
mtrace是glibc的一个内置部分,它允许检测由失衡的malloc/free调用导致的内存泄漏。为了使用它,程序被修改为调用mtrace()和muntrace()来启动和停止对分配的跟踪。将创建一个日志文件,然后可以使用“mtrace”Perl脚本对其进行扫描。“mtrace”程序只列出不平衡的分配。如果源代码可用,它可以显示发生问题的源代码行。McTracle可以用于C和C++程序。
memwatch
memwatch是一个程序,它不仅可以检测malloc和free错误,还可以在分配的空间之外进行读写操作(缓冲区溢出和不足)。要使用它,您需要修改源代码以包含memwatch代码,它为malloc和free提供了替换。
memwatch无法向已释放的地址写入,以及从分配的内存外读取数据。
mpatrol
mpatrol和memwatch类似
dmalloc
dmalloc库被设计成可以直接替换系统的malloc、realloc、calloc、free和其他内存管理例程,同时提供了强大的可在运行时配置的调试工具。这些功能包括内存泄漏跟踪、隔离写后检测、文件/行号报告和一般统计记录。
这个库可以在不修改现有程序的情况下使用,并使用环境变量来控制它的操作和要记录的问题集。
主页位于:http://dmalloc.com/
dbgmem
dbgmem和dmalloc相似但功能较少
valgrind
valgrind提供动态二进制检测来分析程序,并提供大量内存问题检测工具和分析工具。它支持许多不同的架构和平台。
主页:https://www.valgrind.org/