通过DT10监控堆内存分配情况

创提信息
2021/09/16

分享到

DT10是新一代的动态测试工具,可以长时间跟踪记录目标程序执行情况,获取目标程序动态执行数据,帮助进行难于重现的Bug错误分析,覆盖率检测,性能测试,变量跟踪等等功能。
 
嵌入式项目中,我们经常使用malloc和free函数动态分配内存,如何监控内存分配情况?如何动态了解程序执行过程中内存使用情况,本文介绍如何通过DT10帮助用户监控堆内存分配情况。
 
请看如下代码片段,代码中有使用malloc和free函数进行内存分配和释放,为演示DT10如何帮助我们检测内存泄漏,以下面代码为例。


4.jpg

 
DT10中创建一个工程,如果要检测Memory在堆中分配动态变化情况,需要添加一个辅助文件dt_memory_leak.c文件,用以记录其HeapSize的大小,将该文件也导入到DT10的工程中,并针对HeapSize插入测试点,如下图:


5.jpg

 
然后重新构建并执行程序,同时打开DT10监听程序收集测试结果数据,并实时打开Multi Wave Scope窗口,在其中设置单独针对HeapSize进行监控,这样可以实时查看程序运行过程中HeapSize的变化情况:


6.jpg