标签:
在三种检測工具其中,设置最简单的算是memwatch,和dmalloc一样,它能检測未释放的内存、同一段内存被释放多次、位址存取错误及不当使用未分配之内存区域。请往http://www.linkdata.se/sourcecode.html下载最新版本号的Memwatch。
非常幸运地,memwatch根本是不须要安装的,由于它仅仅是一组C程序代码,仅仅要在你程序中增加memwatch.h,编译时加上-DMEMWATCH -DMW_STDIO及memwatch.c就能使用memwatch,比如:
memwatch的输出文件名为memwatch.log,并且在程序运行期间,全部错误提示都会显示在stdout上,假设memwatch未能写入以上文件,它会尝试写入memwatchNN.log,而NN介于01至99之间,若它仍未能写入memwatchNN.log,则会放弃写入文件。
我们引用第一篇(mtrace)中所使用过的有问题的代码:
然后在shell中输入下面编译指令:
memwatch.log的內容例如以下:
文件指出,在test.c被运行到第9行时所分配的内存仍未被释放,该段内存的大小为1 byte。
Memwatch的长处是无需特別配置,不需安装便能使用,但缺点是它会拖慢程序的执行速度,尤其是释放内存时它会作大量检查。但它比mtrace和dmalloc多了 一项功能,就是能模拟系统内存不足的情況,使用者仅仅需用mwLimit(long num_of_byte)函数来限制程式的heap memory大小(以byte单位)。
最具体的使用说明(包含长处缺点,执行原理等)已在README中列出,本人强烈建议各位读者參考该文件。
相关链接:
-
Memwatch下载
Linux C 编程内存泄露检測工具(二):memwatch
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4272307.html