[发明专利]一种防止嵌入式系统内存泄露的方法在审
申请号: | 202011395119.5 | 申请日: | 2020-12-03 |
公开(公告)号: | CN113282430A | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 汪骏 | 申请(专利权)人: | 延锋伟世通电子科技(南京)有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
地址: | 211100 江苏省南京市江宁开发*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 嵌入式 系统 内存 泄露 方法 | ||
本发明涉及一种防止嵌入式系统内存泄露的方法,所述方法包括以下步骤:步骤1:先确定需要使用的系统内存操作函数,并在其之上封装一层;步骤2:在calloc之上封装hook_calloc,用于记录内存分配情况;步骤3:在malloc之上封装hook_malloc,用于记录内存分配情况;步骤4:在memset之上封装hook_memset,用于防止擦写长度溢出;步骤5:在memcpy之上封装hook_memcpy,用于防止复制长度溢出;步骤6:在memncpy之上封装hook_memncpy,用于防止复制长度溢出;步骤7:在free之上封装hook_free,用于记录内存的释放情况;步骤8:实现hook_meminfo函数,打印输出当前堆栈使用和剩余容量;该技术方案即不影响内存使用、又能统计内存使用情况、判断错误和异常操作、记录和打印结果,并能及时反馈和规避错误,快速修复、保证系统稳定性。
技术领域
本发明涉及一种泄露方法,具体涉及一种防止嵌入式系统内存泄露的方法,属于数据安全技术领域。
背景技术
在现有嵌入式产品提供的开发工具中,集成开发工具和仿真工具不具备动态分析内存泄露和溢出的功能,基本只能使用在线调试(连接仿真器的方式)和仿真方法才能跟踪分析某个过程、某个函数、某个调用、某段内存、某个数组或变量,此方式效率低、速度慢,不适用于实际运行环境和量产产品,且不能实时动态分析内存使用情况、打印错误和异常信息;国内市场上,目前没有看到用于实际产品的防止内存泄露的方案。因此,迫切的需要一种新的方案解决上述技术问题。
发明内容
本发明正是针对现有技术中存在的问题,提供一种防止嵌入式系统内存泄露的方法,该技术方案系统内存函数之上封装一层内存管理和分析函数,即不影响内存使用、又能统计内存使用情况、判断错误和异常操作、记录和打印结果,用于避免内存泄露、错误访问和系统奔溃,并能及时反馈和规避错误,让开发或维护人员快速发现错误,快速修复、保证系统稳定性。该方案在系统内存函数之上封装一层内存管理函数;记录申请内存的文件名和代码行,记录申请内存的地址和长度;记录内存的释放,能在程序运行结束后,判断哪些内存未释放;擦写、复制、释放情况,以及内存使用和剩余容量;统计内存使用情况并防止错误,出现错误和异常时,打印错误信息,在系统运行结束时记录运行结果,用于开发人员分析、修改错误和异常;统计内存使用容量、剩余空间;判断内存在擦写、复制时的地址和长度,是否存泄露或溢出;内存访问泄露(申请未释放)和溢出(越界访问)时返回错误;将以上信息保存在日志中,便于开发人员分析问题和修改错误。
为了实现上述目的,本发明的技术方案如下,一种防止嵌入式系统内存泄露的方法,所述方法包括以下步骤:
步骤1:先确定需要使用的系统内存操作函数,并在其之上封装一层;
此方案涉及函数:calloc,malloc,memset,memcpy,memncpy,free
创建hook_meminit函数,初始化内存记录表;
作用:创建内存信息数据,包含如下4项,数据项的个数可以扩展;
函数声明:void hook_meminit(void);
举例:hook_meminit();//将内存信息记录表全部清零;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于延锋伟世通电子科技(南京)有限公司,未经延锋伟世通电子科技(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011395119.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种块状生物水溶肥及其制备方法
- 下一篇:一种用于液体空投的包装箱