【技术实现步骤摘要】
一种嵌入式环境下C或C++语言内存泄漏定位方法
[0001]本专利技术涉及计算机应用系统领域,特别涉及一种嵌入式环境下C或C++语言内存泄漏定位方法。
技术介绍
[0002]嵌入式软件开发因对可靠性、成本、功耗的要求与功能多样性和可靠性要求的矛盾,导致软件开发往往在资源极其稀缺的情况下,来达到日益增长的功能多样性和可靠性要求。但嵌入式开发语言C/C++将内存管理交给程序员来完成,这就导致即使再优秀的程序员,也很难避免内存泄漏的问题。由于嵌入式环境内存资源格外紧张,稍微大一点的内存泄漏就会导致程序奔溃,导致因程序可靠性太低而无法商业化。
[0003]目前查找C/C++内存泄漏的工具很多,与本专利技术最相近的方案有valgrind,dmalloc等等,valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具,可以将程序运行在valgrind环境下以监测该程序内存的使用情况;dmalloc是一个简单易用的C/C++内存泄漏检查工具,能够检查出某一代码逻辑段内,或直到程序运行结束还没有释放的内存,并且能够精 ...
【技术保护点】
【技术特征摘要】
1.一种嵌入式环境下C或C++语言内存泄漏定位方法,其特征在于,所述方法包括以下步骤:S1,ptmalloc修改单元,向内存初始化函数添加打开log文件/mnt/dbgmem.txt逻辑,通过判断/mnt下是否有dbgmem.txt来决定是否保存内存泄漏的信息;在内存分配和释放函数里添加向log文件写调用时间、内存地址、内存大小、调用栈信息、分配函数名称和编号,并编译成动态库libdbgmem.so;S2,编译链接单元,只为Makefile添加编译选项和链接选项,用宏控制选项是否开启,并重新编译整个程序;S3,运行程序保存log文件/mnt/dbgmem.txt单元,将内存泄漏相关log信息实时保存到文件里而非内存里;将log文件拷贝到开发环境分析;S4,分析log文件并输出内存泄漏统计数据单元,分析指定的开始和结束时间段内内存泄漏的统计信息;按顺序输出指定条目数量的内存泄漏统计信息做进一步逻辑分析。2.根据权利要求1所述的一种嵌入式环境下C或C++语言内存泄漏定位方法,其特征在于,所述步骤S1进一步包括:修改ptmalloc里面的内存初始化函数ptmalloc_init,内存分配函数:malloc_atfork,public_mALLOc,public_rEALLOc,public_mEMALIGn,public_vALLOc,public_pMEMALIGn,public_cALLOc,public_iCALLOc,public_iCOMALLOc,内存释放函数:free_atfork,public_fREe。3.根据权利要求1所述的一种嵌入式环境下C或C++语言内存泄漏定位方法,其特征在于,所述步骤S1中/mnt目录可以改为SD卡挂载目录,或nfs挂载目录,或...
【专利技术属性】
技术研发人员:康鹏涛,
申请(专利权)人:合肥君正科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。