[发明专利]一种用于linux环境中的内存池调试方法在审
申请号: | 201710617729.7 | 申请日: | 2017-07-26 |
公开(公告)号: | CN107451054A | 公开(公告)日: | 2017-12-08 |
发明(设计)人: | 王鑫鹏;倪创;陶琴;陈辉 | 申请(专利权)人: | 武汉虹信通信技术有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F12/02 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙)42222 | 代理人: | 严彦 |
地址: | 430073 湖北省*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种用于linux环境中的内存池调试方法,用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息,包括在程序启动时,将进程的虚拟地址映射表输出到一个文件里保存;之后创建和初始化内存池,每个内存块都有一个管理结构用于内存池对内存块进行管理,申请内存时,从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时,将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址;出现问题时,将存储的函数调用栈地址转换成代码位置。本发明可以快速精确定位内存使用不当例如重复释放和内存泄漏的问题,直接定位到代码位置。 | ||
搜索关键词: | 一种 用于 linux 环境 中的 内存 调试 方法 | ||
【主权项】:
一种用于linux环境中的内存池调试方法,其特征在于:用内存池来管理动态申请的内存,在内存块的管理结构中存储debug信息,实现方式如下,在程序启动时,将进程的虚拟地址映射表输出到一个文件里保存,用于函数调用栈地址和代码位置的转换;之后创建和初始化内存池,内存池里的内存按业务需求分成不同大小的内存块,每个内存块都有一个管理结构用于内存池对内存块进行管理,管理结构对用户不可见;内存块的管理结构内有链表结构,用于将同类型的同状态内存块连接起来,大小相同的状态相同的内存块在一个链表中;申请内存时,从内存池中取相应大小的内存块返回给用户,并在内存块的管理结构中存储申请时的函数调用栈地址;释放内存时,将要释放的内存块返回给内存池,并在内存块的管理结构中存储释放时的函数调用栈地址;出现问题时,将存储的函数调用栈地址转换成代码位置,支持直接定位bug出现的代码位置。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉虹信通信技术有限责任公司,未经武汉虹信通信技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710617729.7/,转载请声明来源钻瓜专利网。