首页 内存故障检测定位方法、装置、计算机设备及存储介质

内存故障检测定位方法、装置、计算机设备及存储介质

举报
开通vip

内存故障检测定位方法、装置、计算机设备及存储介质(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112631821A(43)申请公布日2021.04.09(21)申请号202110114980.8(22)申请日2021.01.28(71)申请人长沙景嘉微电子股份有限公司地址410221湖南省长沙市岳麓区梅溪湖路1号(72)发明人应志强 (74)专利代理机构北京动力号知识产权代理有限公司11775代理人梁艳(51)Int.Cl.G06F11/07(2006.01)权利要求书2页说明书9页附图5页(54)发明名称内存故障检测定位方法、装...

内存故障检测定位方法、装置、计算机设备及存储介质
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112631821A(43)申请公布日2021.04.09(21)申请号202110114980.8(22)申请日2021.01.28(71)申请人长沙景嘉微电子股份有限公司地址410221湖南省长沙市岳麓区梅溪湖路1号(72)发明人应志强 (74)专利代理机构北京动力号知识产权代理有限公司11775代理人梁艳(51)Int.Cl.G06F11/07(2006.01)权利要求书2页说明书9页附图5页(54)发明名称内存故障检测定位方法、装置、计算机设备及存储介质(57)摘要本发明适用于计算机技术领域,提供了一种内存故障检测定位方法、装置、计算机设备及存储介质,所述方法包括:根据内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障,并在确定系统存在内存故障时,根据内存故障定位规则确定存在故障的使用内存,其中内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种。本发明提供的内存故障检测定位方法,通过在程序向系统申请使用内存的过程中同步申请内存管理结构,后续可以方便的对内存管理结构进行故障检测从而确定出内存故障。CN112631821ACN112631821A权 利 要 求 书1/2页1.一种内存故障检测定位方法,其特征在于,运用于嵌入式系统当中,所述内存故障定位方法包括:根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。2.根据权利要求1所述的内存故障检测定位方法,其特征在于,所述内存管理结构中包括使用内存的特征标识;所述使用内存的前端和后端均存在内存管理结构;所述根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障的步骤,具体为:判断是否存在特征标识被损坏的内存管理结构;当判断存在特征标识被损坏的内存管理结构时,确定系统存在内存越界故障;所述当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存的步骤,具体为:当确定系统存在内存越界故障时,确定与被损坏的特征标识对应的使用内存;判断当前确定的使用内存的前端内存管理结构中的特征标识是否被损坏;当判断当前确定的使用内存的前端内存管理结构中的特征标识被损坏时,将所述当前确定的使用内存的上一使用内存重新确定为当前确定的使用内存,并返回至所述判断当前确定的使用内存的前端内存管理结构中的特征标识是否被损坏的步骤;当判断所述使用内存的前端内存管理结构中的特征标识未被损坏时,确定当前确定的使用内存存在内存越界故障。3.根据权利要求2所述的内存故障检测定位方法,其特征在于,所述内存管理结构还包括调用内存申请接口的位置信息;所述位置信息包括代码文件名、函数名以及行数;在所述确定当前确定的使用内存存在内存越界故障的步骤之后,还包括:根据存在内存越界故障的使用内存的内存管理结构中的调用内存申请接口的位置信息确定存在内存越界故障的程序代码段。4.根据权利要求1所述的内存故障检测定位方法,其特征在于,所述内存管理结构中包括使用内存的内容校验码;所述根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障的步骤,具体为:根据预设的校验规则对内存数据进行校验,确定校验结果;根据所述校验结果与所述内容校验码是否相同确定,确定系统是否存在内存意外修改故障。5.根据权利要求4所述的内存故障检测定位方法,其特征在于,所述内存管理结构中还包括使用内存的最后更新时间;所述当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存的步骤,具体为:当确定系统存在内存意外修改故障时,根据所述使用内存的最后更新时间确定使用内存被意外修改时间。2CN112631821A权 利 要 求 书2/2页6.根据权利要求1所述的内存故障检测定位方法,其特征在于,所述内存管理结构中包括使用内存的大小信息;所述根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障的步骤,具体为:根据使用内存前端和/或后端的内存管理结构中的使用内存的大小信息确定使用内存总大小;判断所述使用内存总大小是否超过预设的阈值;当判断所述使用内存总大小超过预设的阈值时,确定系统存在内存泄露故障。7.根据权利要求1所述的内存故障检测定位方法,其特征在于,在程序向系统申请使用内存的过程中同步申请内存管理结构的步骤,具体包括:获取包含程序使用数据的申请使用内存请求;根据所述程序使用数据确定相应的内存管理信息;所述内存管理信息至少包括程序使用数据的特征标识、程序使用数据的内容校验码、程序使用数据的大小信息;将所述程序使用数据写入相应的使用内存中,并在所述使用内存的前端和/或后端创建内存管理结构,并写入内存管理信息。8.一种内存故障检测定位装置,其特征在于,设置于嵌入式系统当中,所述内存故障定位装置包括:内存故障检测单元,用于根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;内存故障定位单元,用于当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述内存故障检测定位方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述内存故障检测定位方法的步骤。3CN112631821A说 明 书1/9页内存故障检测定位方法、装置、计算机设备及存储介质技术领域[0001]本发明属于计算机技术领域,尤其涉及一种内存故障检测定位方法、装置、计算机设备及存储介质。背景技术[0002]嵌入式系统中的各种程序大多会涉及到内存的申请、使用和释放。在这个过程中很容易出现内存泄漏、内存越界等内存使用问题。这些问题会导致整个系统出现功能异常,甚至系统重启,严重影响系统的正常工作。并且出现内存问题时,往往其现象不确定,出现的条件和时间也不确定,因此很难定位具体是哪里出现了内存问题。传统的代码检测工具可以检查出明显的内存泄漏、内存越界问题,但是对于复杂功能代码,在多级内存指针的嵌套的情况下,传统的代码检测工具不能进行有效的检查。[0003]可见,现有技术中针对于嵌入式系统当中的内存故障检测定位方法还存在对复杂功能代码故障检测效果差的技术问题。发明内容[0004]本发明实施例的目的在于提供一种内存故障检测定位方法,旨在解决现有技术中针对于嵌入式系统当中的内存故障检测定位方法还存在的对复杂功能代码故障检测效果差的技术问题。[0005]本发明实施例是这样实现的,一种内存故障检测定位方法,运用于嵌入式系统当中,所述内存故障定位方法包括:根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0006]本发明实施例的另一目的在于提供一种内存故障检测定位装,设置于嵌入式系统当中,所述内存故障定位装置包括:内存故障检测单元,用于根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;内存故障定位单元,用于当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0007]本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行4CN112631821A说 明 书2/9页如上述所述内存故障检测定位方法的步骤。[0008]本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述内存故障检测定位方法的步骤。[0009]本发明实施例提供的一种内存故障检测定位方法,运用于嵌入式系统,通过创建内存管理进程,在进程中按照预设的周期并根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障,其中内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的,至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种,并在确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。本发明提供的内存故障检测定位方法,通过在程序向系统申请使用内存的过程中同步申请内存管理结构,并将使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种写入在内存管理结构中,使得后续可以方便地根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测从而确定出与写入内存管理结构中的信息相对应的内存故障。附图说明[0010]图1为本发明实施例提供的一种内存故障检测定位方法的步骤 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图;图2为本发明实施例提供的一种内存越界故障检测定位方法的步骤流程图;图3为本发明实施例提供的另一种内存越界故障检测定位方法的步骤流程图;图4为本发明实施例提供的一种内存意外修改故障检测方法的步骤流程图;图5为本发明实施例提供的另一种内存意外修改故障检测方法的步骤流程图;图6为本发明实施例提供的一种内存泄漏故障检测方法的步骤流程图;图7为本发明实施例提供的一种申请内存管理结构方法的步骤流程图;图8为本发明实施例提供的一种内存故障检测定位装置的结构示意图;图9为本发明实施例提供的一种执行内存故障检测定位方法的计算机设备的内部结构图。具体实施方式[0011]为了使本发明的目的、技术 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0012]本发明为解决现有的嵌入式系统中内存故障难以检测定位的问题,通过内存管理程序实现对内存的管理,具体的,在内存请求程序申请内存时,通过内存管理程序来申请内存,此时内存管理程序实际跟系统申请的内存大小等于内存请求程序要求的内存大小(SIZE)外加一或两个内存管理结构的大小,内存管理结构位于程序要求的内存的前端或后端,并且当内存的前端或后端都具有内存管理结构时,前内存管理结构和后内存管理结构的内容是相同的。与此同时,在将程序数据存入至请求的内存的同时,将与程序数据相关的数据管理信息同步存入至内存管理结构,以便后续内存管理程序可以通过创建一个独立的5CN112631821A说 明 书3/9页内存管理进程,如此,内存管理进程就按照预设的内存故障检测规则对内存管理结构中存入的数据管理信息进行故障检测,确定系统是否存在内存故障,并能进一步确定存在故障的内存,而当内存管理结构中存入的数据管理信息不同时,内存管理进程所执行的内存故障检测规则也不尽相同,所检测出的内存故障也不相同,具体可以参阅后续的论述。[0013]如图1所示,为本发明实施例提供的一种内存故障检测定位方法的步骤流程图,具体包括以下步骤。[0014]步骤S102,根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障。[0015]在本发明实施例中,所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的,具体可以参阅前述的说明。而在程序向系统申请使用内存的过程中同步申请内存管理结构的步骤,具体请参阅后续图7及其解释说明。[0016]在本发明实施例中,所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种,此外,所述内存管理结构还可以进一步包括调用内存申请接口的位置信息、使用内存的最后更新时间等等。[0017]在本发明实施例中,其中根据上述内存管理结构中包含的信息不同,能够确定的常见的内存故障主要包括内存越界故障、内存意外修改故障以及内存泄漏故障等等。具体可以参阅后续图2~图6及其解释说明。[0018]步骤S104,当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0019]在本发明实施例中,同样的,在确定系统存在内存故障时,还可以进一步根据存在故障的使用内存的内存管理结构确定存在故障的内存,尤其是内存越界故障,往往会导致多个内存的内存管理结构被破坏,其中确定存在内存越界故障的源头的实现方案,具体可以参阅图3及其解释说明。[0020]本发明实施例提供的一种内存故障检测定位方法,运用于嵌入式系统,通过创建内存管理进程,在进程中按照预设的周期并根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障,其中内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的,至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种,并在确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。本发明提供的内存故障检测定位方法,通过在程序向系统申请使用内存的过程中同步申请内存管理结构,并将使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种写入在内存管理结构中,使得后续可以方便的根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测从而确定出与写入内存管理结构中的信息相对应的内存故障。[0021]如图2所示,为本发明实施例提供的一种内存越界故障检测定位方法的步骤流程图,具体包括以下步骤。[0022]步骤S202,判断是否存在特征标识被损坏的内存管理结构。当判断存在特征标识被损坏的内存管理结构时,执行步骤S204。当判断不存在特征标识被损坏的内存管理结构时,执行其他步骤。6CN112631821A说 明 书4/9页[0023]在本发明实施例中,提供了一种针对内存越界故障检测定位方法的步骤流程图,其中所述内存管理结构中包括使用内存的特征标识,且使用内存的前端和后端均存在内存管理结构。[0024]在本发明实施例中,当内存发生越界故障时,此时访问会越过内存后端的内存管理结构,导致内存管理结构当中的特征标识被损坏,因此可以通过判断是否存在特征标识被损坏的内存管理结构来判断是否存在内存越界故障。其中,执行其他步骤通常是指等待下一次循环判断是否存在特征标识被损坏的内存管理结构。[0025]步骤S204,确定与被损坏的特征标识对应的使用内存。[0026]在本发明实施例中,显然当判断存在特征标识被损坏的内存管理结构时,可以确定与被损坏的特征标识对应的使用内存,但需要说明的是,由于内存越界故障往往会导致多个使用内存的内存管理结构中的特征标识被损坏,因此还需要进一步按照预设的内存故障定位规则去溯源确定发生内存越界故障的源头,具体如下步骤S206所示。[0027]步骤S206,判断当前确定的使用内存的前端内存管理结构中的特征标识是否被损坏。当判断当前确定的使用内存的前端内存管理结构中的特征标识被损坏时,执行步骤S208;当判断当前确定的使用内存的前端内存管理结构中的特征标识未被损坏时,执行步骤S210。[0028]在本发明实施例中,考虑到某使用内存的前内存管理结构中的特征标识损坏则说明它上一个使用内存存在问题,而某使用内存的前内存管理结构中的特征标识没有损坏而后内存管理结构中的特征标识被损坏,则说明该内存的访问存在问题。因此基于上述原理,可以通过判断当前确定的使用内存的前端内存管理结构中的特征标识是否被损坏来判断是上一个使用内存存在故障还是当前使用内存存在故障。[0029]步骤S208,将所述当前确定的使用内存的上一使用内存重新确定为当前确定的使用内存,并返回至步骤S206。[0030]在本发明实施例中,如果判断当前确定的使用内存的前端内存管理结构中的特征标识被损坏,表明上一个使用内存存在故障,因此,指针将指向上一个使用内存,并返回至步骤S206再次进行检测。[0031]步骤S210,确定当前确定的使用内存存在内存越界故障。[0032]在本发明实施例中,显然,当判断当前确定的使用内存的前端内存管理结构未被破坏,则表明该内存的访问存在问题,也就是该使用内存存在内存越界故障,即内存访问越界故障。[0033]如图3所示,为本发明实施例提供的另一种内存越界故障检测定位方法的步骤流程图,详述如下。[0034]在本发明实施例中,与图2所示出的一种内存越界故障检测定位方法的步骤流程图的区别在于,在所述步骤S210后,还包括:步骤S302,根据存在内存越界故障的使用内存的内存管理结构中的调用内存申请接口的位置信息确定存在内存越界故障的程序代码段。[0035]在本发明实施例中,进一步的,所述内存管理结构还包括调用内存申请接口的位置信息,所述位置信息主要包括代码文件名、函数名以及行数等信息,如此可以根据存在内存越界故障的使用内存的内存管理结构中的调用内存申请接口的位置信息确定存在内存7CN112631821A说 明 书5/9页越界故障的程序代码段,便于后续对程序的修改。[0036]如图4所示,为本发明实施例提供的一种内存意外修改故障检测方法的步骤流程图,具体包括以下步骤:步骤S402,根据预设的校验规则对内存数据进行校验,确定校验结果。[0037]在本发明实施例中,提供了一种内存意外修改故障检测的方法,其中,此时内存管理结构中包括使用内存的内容校验码,该内容校验码是在预先设定的已知校验规则下求得的,且每次正常更新内存数据,都会相应的对内容校验码进行更新,而当内存数据被意外修改,则内容校验码不会正常更新。因此通过预设设定好的校验规则对内存数据进行校验,确定校验结果,并与内存管理结构中的内容校验码进行比对就可以确认内存数据是否被意外修改过。[0038]步骤S404,根据所述校验结果与所述内容校验码是否相同确定,确定系统是否存在内存意外修改故障。[0039]在本发明实施例中,显然当每个内存的校验结果与其对应的内存管理结构中的内容校验码相同时,则系统不存在内存意外修改故障,反之,表明相应的内存存在意外修改故障。[0040]如图5所示,为本发明实施例提供的另一种内存意外修改故障检测方法的步骤流程图,详述如下。[0041]在本发明实施例中,与图4所示出的一种内存意外修改故障检测方法的步骤流程图的区别在于,在所述步骤S404之后,还包括:步骤S502,当确定系统存在内存意外修改故障时,根据所述使用内存的最后更新时间确定使用内存被意外修改时间。[0042]在本发明实施例中,进一步的,内存管理结构中还包括使用内存的最后更新时间,即每次更新内存后,都会更新使用内存的最后更新时间,而在确定系统存在内存意外修改故障时,就能够根据使用内存的最后更新时间确定使用内存被意外修改时间,并进一步结合实际业务场景就可以确定出使用内存被意外修改的可能原因。[0043]如图6所示,为本发明实施例提供的一种内存泄漏故障检测方法的步骤流程图,具体包括以下步骤:步骤S602,根据使用内存前端和/或后端的内存管理结构中的使用内存的大小信息确定使用内存总大小。[0044]在本发明实施例中,所述内存管理结构中包括使用内存的大小信息,具体的,内存管理程序还创建了内存使用统计表,用于统计使用内存的情况,即将使用内存的大小信息求和确定出使用内存的总大小。[0045]步骤S604,判断所述使用内存总大小是否超过预设的阈值。当判断所述使用内存总大小超过预设的阈值时,执行步骤S606;当判断所述使用内存总大小不超过预设的阈值时,执行其他步骤。[0046]在本发明实施例中,在正常情况下,内存在申请使用结束后,通常都会由对应的内存申请程序申请释放掉内存,以便后续程序进一步申请内存,然而,由于各种各样的因素,导致内存在申请结束后,内存没有被有效释放掉,占用了空间,后续程序无法再申请相应的内存,久而久之,未被有效释放掉的内存越来越多,可申请使用的内存空间越来越少,就会8CN112631821A说 明 书6/9页出现内存泄露故障。本发明通过监控总内存的使用大小,来识别内存泄漏故障。[0047]步骤S606,确定系统存在内存泄露故障。[0048]在本发明实施例中,当判断使用内存总大小超过预设的阈值时,认为大量内存被占用,有较高的可能性存在内存泄漏故障,即确定系统存在内存泄漏故障,并通过输出警示信息提醒用户。[0049]如图7所示,为本发明实施例提供的一种申请内存管理结构方法的步骤流程图,具体包括以下步骤:步骤S702,获取包含程序使用数据的申请使用内存请求。[0050]在本发明实施例中,在常规的嵌入式系统中,内存申请程序都是直接通过接口先内存发起请求,而在本发明公开的技术方案中,通过在内存申请程序与内存之间加入内存管理程序,使得内存申请程序需要通过内存管理程序才能向内存发起请求,即内存管理程序会先获取到内存申请程序发起的申请使用内存请求。具体的,对原系统提供的内存管理接口(如malloc、ralloc、free)进行封装,并使得封装后的内存管理接口调用原来系统的内存管理接口,从而实现对内存的管理。[0051]步骤S704,根据所述程序使用数据确定相应的内存管理信息。[0052]在本发明实施例中,内存管理程序会根据内存申请程序发起的申请使用内存请求中所包含的程序使用数据确定相应的内存管理信息,从而方便后续对该程序使用数据的管理,具体管理可以参阅前述图2~图6的内容。[0053]步骤S706,将所述程序使用数据写入相应的使用内存中,并在所述使用内存的前端和/或后端创建内存管理结构,并写入内存管理信息。[0054]在本发明实施例中,内存管理程序会同时申请内存大小等于外部要求的内存大小(SIZE)加一或两个内存管理结构的大小,并在内存前端和/或后端创建内存管理结构,然后将程序使用数据写入相应的使用内存中,将内存管理信息写入所述一或两个内存管理结构。其中申请一个内存管理结构还是两个内存管理结构可以根据用户需求实际定义,当然优选申请两个内存管理结构。[0055]在本发明实施例中,为了更好地管理内存,内存管理程序还会进一步创建一个独立的内存维护数据结构(可以是链表、树或其他形式的数据结构)。用户申请内存时会将这次内存申请事件加入到内存维护数据结构上,内存维护数据结构按照内存地址进行排序。[0056]在本发明实施例中,内存管理程序会创建一个内存使用统计表。用来记录各个进程申请内存的时间间隔、总的内存申请大小、在用内存大小、内存申请速度等信息,然后也会记录各个调用内存申请接口位置申请内存的时间间隔、总的内存申请大小、在用内存大小、内存申请速度等信息,从而便于后续对故障的诊断。[0057]在本发明实施例中,内存管理程序会创建一个独立的内存管理进程,该进程会根据图1~图6所示出的步骤执行,从而实现对部分内存故障的检测定位。[0058]如图8所示,为本发明实施例提供的一种内存故障检测定位装置的结构示意图,具体包括以下单元。[0059]内存故障检测单元810,用于根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障。[0060]在本发明实施例中,所述内存管理结构是在程序向系统申请使用内存的过程中与9CN112631821A说 明 书7/9页使用内存同步申请的,具体可以参阅前述的说明。而在程序向系统申请使用内存的过程中同步申请内存管理结构的步骤,具体请参阅后续图7及其解释说明。[0061]在本发明实施例中,所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种,此外,所述内存管理结构还可以进一步包括调用内存申请接口的位置信息、使用内存的最后更新时间等等。[0062]在本发明实施例中,其中根据上述内存管理结构中包含的信息不同,能够确定的常见的内存故障主要包括内存越界故障、内存意外修改故障以及内存泄漏故障等等。具体可以参阅图2~图6及其解释说明。[0063]内存故障定位单元820,用于当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0064]在本发明实施例中,同样的,在确定系统存在内存故障时,还可以进一步根据存在故障的使用内存的内存管理结构确定存在故障的内存,尤其是内存越界故障,往往会导致多个内存的内存管理结构被破坏,其中确定存在内存越界故障的源头的实现方案,具体可以参阅图3及其解释说明。[0065]本发明实施例提供的一种内存故障检测定位装置,设置于嵌入式系统,通过创建内存管理进程,在进程中按照预设的周期并根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障,其中内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的,至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种,并在确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。本发明提供的内存故障检测定位装置,通过在程序向系统申请使用内存的过程中同步申请内存管理结构,并将使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种写入在内存管理结构中,使得后续可以方便的根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测从而确定出与写入内存管理结构中的信息相对应的内存故障。[0066]图9示出了一个实施例中计算机设备的内部结构图。如图9所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现内存故障检测定位方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行内存故障检测定位方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。[0067]本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0068]在一个实施例中,本申请提供的内存故障检测定位装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该内存故障检测定位装置的各个程序模块,比如,图8所示的内存故障检测单元810及10CN112631821A说 明 书8/9页内存故障定位单元820。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的内存故障检测定位方法中的步骤。[0069]例如,图9所示的计算机设备可以通过如图8所示的内存故障检测定位装置中的内存故障检测单元810执行步骤S102;计算机设备可通过内存故障定位单元820执行步骤S104。[0070]在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0071]在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:根据预设的内存故障检测规则对位于使用内存前端和/或后端的内存管理结构进行故障检测,确定系统是否存在内存故障;所述内存管理结构是在程序向系统申请使用内存的过程中与使用内存同步申请的;所述内存管理结构中至少包括使用内存的特征标识、使用内存的内容校验码、使用内存的大小信息的一种或多种;当确定系统存在内存故障时,根据预设的内存故障定位规则确定存在故障的使用内存。[0072]应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。[0073]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。11CN112631821A说 明 书9/9页[0074]以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0075]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。[0076]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。12CN112631821A说 明 书 附 图1/5页图1图213CN112631821A说 明 书 附 图2/5页图314CN112631821A说 明 书 附 图3/5页图4图515CN112631821A说 明 书 附 图4/5页图6图716CN112631821A说 明 书 附 图5/5页图8图917
本文档为【内存故障检测定位方法、装置、计算机设备及存储介质】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥8.0 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
掌桥科研
掌桥科研向科研人提供中文文献、外文文献、中文专利、外文专利、政府科技报告、OA文献、外军国防科技文献等多种科研资源的推广、发现、揭示和辅助获取服务,以及自动文档翻译、人工翻译、文档格式转换、收录引证等科研服务,涵盖了理、工、医、农、社科、军事、法律、经济、哲学等诸多学科和行业的中外文献资源。
格式:pdf
大小:616KB
软件:PDF阅读器
页数:17
分类:
上传时间:2022-01-25
浏览量:0