dmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。
dmalloc能够检查出直到程序运行结束还没有释放的内存,并且能够精确指出在
哪个源文件的第几行。
dmalloc 主页: http://dmalloc.com
支持的平台:AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware, Windoze, and even Unicos on a Cray T3E
最新版本: 5.5.2
安装:下载 http://dmalloc.com/releases/dmalloc-5.5.2.tgz
解压:
-
tar zxvf dmalloc-5.5.2.tgz
-
cd dmalloc-5.5.2
configure 编译选项说明:
--target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;
--program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-dmalloc;
--prefix是指生成的可执行文件安装在哪个目录,这个目录需要根据实际情况作选择。如果该目录不存在,会自动创建,当然,权限足够的话。
--build=编译该软件所使用的平台
--host=该软件将运行的平台
--target=该软件所处理的目标平台
一、本机编译安装
./configure
make
make install
二、arm-linux交叉编译安装:
(1)交叉变异dmalloc库,修改configure文件中的ac_cv_page_size=0为12,否则会出现交叉编译不通过;
(2)为了获取堆内存越界的地址和行号,需要修改return.h文件,我们使用arm,则只保留arm即可,其他的可以关闭或删除;
编译安装:
./configure --host=arm-liunx --enable-threads --prefix=/usr/local/arm-dmalloc/
make
make install
此时就会在/usr/local/arm-dmalloc目录下生成三个文件夹:
bin目录下生成dmalloc可执行程序,可直接在arm-linux目标机上运行
include目录下dmalloc.h
lib目录下生成依赖的的库libdmalloc.a,libdmallocth.a