背景:一个项目的jni层查出每次呼叫增加0.1M内存泄漏,代码查不出,想通过一些工具来检查出来,并且通过日志方式把内存泄漏信息给打印出来,于是找到了memwatch,并且写一个测试例子验证这种方式是否可行,例子我认为可以试试,实际上没用,因为大佬最后说内存涨60M就保持稳定就不用跟踪了。
memwatch的详细说明可以看它的头文件 memwatch.h介绍,也可以看这一篇中文文章:https://blog.youkuaiyun.com/jimmy1357/article/details/37996827?locationNum=3&fps=1
memwatch下载地址:https://www.linkdata.se/sourcecode/memwatch/
参考简单例子:https://www.cnblogs.com/sxmcACM/p/4321725.html
memwatch默认是关闭的,所以编译的时候加入MEMWATCH打开,或者在头文件加入MEMWATCH宏定义常打开。项目因为是多线程和希望通过日志方式打印出来,因此写了下面的测试例子:
编译命令:gcc -DMEMWATCH -DMW_STDIO -pthread memwatch_test.c memwatch.c -o bu