博客
希望我们能与您分享和探讨成长中的点点滴滴
通过DT10检测内存泄漏问题
分享到
DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能。
C/C++代码中,内存泄漏一直是开发人员最头痛的问题之一,本文介绍如何通过DT10帮助用户查找内存泄露问题。
请看如下代码片段,代码中有使用malloc和free函数进行内存分配和释放,为演示DT10如何帮助我们检测内存泄漏,以下面代码为例。
在DT10中创建一个工程,如下图:
DT10可自动插入测试点,而对于内存泄漏检测,目前支持手工插入测试点,插入方式如下:
在malloc函数后点击右键,选择Insert Test Point -> Normal Step,并在free函数之后,以同样的方式插入测试点,测试点插入之后,如下图:
然后重新构建工程并执行,使用DT10收集测试结果,收集之后得到的Malloc函数和Free函数执行次数,用户只需判断Malloc的次数和Free次数是否一致即可知道是否存在内存泄漏,从而帮助用户检测C/C++代码中的一些内存泄漏问题。如下图:malloc被调用100次,但free只调用1次,那么显然这段代码存在内存泄漏问题。