最近写了个数据交换的应用,为了检测长时间运行是否有内存泄露的问题,决定使用内存检测工具进行测试,首先想到的是在linux下使用top命令进行测试,但是在嵌入式linux下使用top命令并不能显示VIRT,即进程使用的虚拟内存总量,只有显示%mem和rss 这些是进程使用的物理内存的情况,对是否会有内存泄露没有太大的参考价值。
c代码有很多的内存检测工具,比如valgrind,但是在移植valgrind的时候出现匹配性问题,决定使用memwatch,它是比较简单的,直接下载源码,下载地址:http://directory.fsf.org/wiki/Memwatch. 其中有用的文件就是memwatch.c 和memwatch.h ,把这两个文件至于要检测的代码中就能进行内存检测了,确保要检测代码的每个c文件都要包含memwatch.h文件,把memwatch.c文件放在要检测源码的目录下,更改Makefile文件。运行程序,程序退出后就会在当前目录下生成memwatch.log文件