[发明专利]内存问题检测方法、装置、计算机设备及存储介质有效
申请号: | 202010100737.6 | 申请日: | 2020-02-18 |
公开(公告)号: | CN111338864B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 戴国金 | 申请(专利权)人: | 上海闻泰电子科技有限公司 |
主分类号: | G06F11/22 | 分类号: | G06F11/22 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 吴迪 |
地址: | 200001 上海市黄浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 问题 检测 方法 装置 计算机 设备 存储 介质 | ||
本发明提供了一种内存问题检测方法、装置、计算机设备及存储介质,涉及计算机技术领域,通过在计算机设备内嵌入记录内存操作的使用历史信息的目标数据结构,在发生内存问题时通过回溯查看记录内存操作的使用历史信息,可以定位到被野指针操作破坏内存数据的代码行,进而可以有效定位到导致内存问题的异常代码块,与现有技术中基于日志的压力测试跟踪分析方式相比,本发明不需要反复修改测试代码,提高了检测效率,从而缩短了内存问题的解决周期。
技术领域
本发明涉及计算机技术领域,尤其是涉及一种内存问题检测方法、装置、计算机设备及存储介质。
背景技术
在诸如手机或计算机等计算机设备的启动初期的BIOS(Basic Input OutputSystem,基本输入输出系统)启动阶段,如果有野指针非法访问了计算机设备的某个内存区域,则该内存区域的数据可能会被破坏,导致计算机设备在BIOS启动阶段无法开机或反复重启,其中,野指针为指向的位置是不可知的(随机的、不正确的、没有明确限制的)的指针。计算机设备售出后,一旦出现此类致命问题,会严重影响产品质量和用户体验,容易引起售后客诉。因此,需要在售出计算机设备前,对计算机设备进行内存问题检测,找到该计算机设备中导致内存发生异常问题的代码点(即代码行的位置),以便从根本上解决该类内存问题。
因BIOS启动阶段下代码的执行环境比较苛刻,调试手段非常有限,而且上述内存问题发生的概率较低,因此通常需要反复修改测试代码并添加日志,来进行压力测试跟踪分析,逐步缩小范围才能定位到发生异常问题的代码点。这种内存问题检测方式人力消耗较大、费时较长,导致检测效率较低,从而严重影响了内存问题的解决周期。
发明内容
本发明的目的在于提供一种内存问题检测方法、装置、计算机设备及存储介质,以提高检测效率,从而缩短内存问题的解决周期。
本发明实施例提供了一种内存问题检测方法,应用于嵌入有目标数据结构的计算机设备,该目标数据结构用于记录内存操作的使用历史信息;该方法包括:
获取上述计算机设备在BIOS启动阶段的测试数据,该测试数据包括异常内存地址和使用历史信息;
根据使用历史信息,确定异常内存地址对应的目标代码地址;
根据目标代码地址,确定上述计算机设备中导致内存问题的异常代码块。
进一步地,获取上述计算机设备在BIOS启动阶段的异常内存地址的步骤,包括:
监测上述计算机设备在BIOS启动阶段出现的野指针;
将监测到的野指针所指向的地址确定为异常内存地址。
进一步地,上述使用历史信息包括多条内存信息,每条内存信息均包括所操作内存的代码地址、所操作内存的大小、使用所操作内存的模块和所操作内存的起始地址;根据使用历史信息,确定异常内存地址对应的目标代码地址的步骤,包括:
根据每条内存信息中的所操作内存的大小、使用所操作内存的模块和所操作内存的起始地址,确定每条内存信息对应的内存地址范围;
从各条内存信息对应的内存地址范围中,查找出异常内存地址所属的目标地址范围;
将目标地址范围对应的内存信息中的所操作内存的代码地址确定为异常内存地址对应的目标代码地址。
进一步地,根据目标代码地址,确定上述计算机设备中导致内存问题的异常代码块的步骤,包括:
确定目标代码地址对应的源码行;
将源码行所在的源码块确定为上述计算机设备中导致内存问题的异常代码块,以使用户基于该异常代码块确定导致内存问题的根因代码。
进一步地,上述使用历史信息按照使用所操作内存的模块分类,并以链表形式存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海闻泰电子科技有限公司,未经上海闻泰电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010100737.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可调节加密重复数据删除方法
- 下一篇:语音处理方法及相关产品