[检查内存泄露] 像STM32这样的单片机怎么检查内存泄露。

2019-08-17 06:49发布

本帖最后由 YMC 于 2016-11-17 09:40 编辑

如题 ,像单片机这样的程序,有没有检查其内存泄露的工具和方法。
网上搜了很多的工具,比如 Valgrind ,用了之后只知道检查linux下的可执行程序,来检查其源码有没有内存泄露。

如果有数组越界和内存泄露都是能跟踪到源码的。但是单片机这样的程序,在linux下该怎么编译处理,真的想不到什么方法。
或是在windows下有没有这种检测工具和方法,网友们有没有这方面的经验,传授下。

------------------------------------------------------------------------------------------------------------------------------
网上Valgrind检查内存泄露的例子 ,和查找结果,这种是gcc编译出的可执行程序来检查内存泄露
------------------------------------------------------------------------------------------------------------------------------

[mw_shl_code=c,true]#include <stdlib.h>  
int* func(void)  
{  
   int* x = malloc(10 * sizeof(int));
   x[10] = 0;  //问题1: 数组下标越界
}                    
int main(void)  
{  
   int* x=NULL;  
   x=func();  
   //free(x);   
   x=NULL;  
   return 0;   //问题2: 内存没有释放
} [/mw_shl_code]

说明 Invalid write of size 4:表示数组越界写了4字节40 bytes in 1 blocks:表示因程序退出而发生内存泄露40字节

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。