CN106326094B - 检查指针异常的方法及系统 - Google Patents

检查指针异常的方法及系统 Download PDF

Info

Publication number
CN106326094B
CN106326094B CN201510369613.7A CN201510369613A CN106326094B CN 106326094 B CN106326094 B CN 106326094B CN 201510369613 A CN201510369613 A CN 201510369613A CN 106326094 B CN106326094 B CN 106326094B
Authority
CN
China
Prior art keywords
memory
virtual memory
physical memory
virtual
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510369613.7A
Other languages
English (en)
Other versions
CN106326094A (zh
Inventor
丁国星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Leadcore Technology Co Ltd
Datang Semiconductor Design Co Ltd
Original Assignee
Leadcore Technology Co Ltd
Datang Semiconductor Design Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leadcore Technology Co Ltd, Datang Semiconductor Design Co Ltd filed Critical Leadcore Technology Co Ltd
Priority to CN201510369613.7A priority Critical patent/CN106326094B/zh
Publication of CN106326094A publication Critical patent/CN106326094A/zh
Application granted granted Critical
Publication of CN106326094B publication Critical patent/CN106326094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种检查指针异常的方法及系统。根据所述方法,所述系统在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存;通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作。本方案实现了野指针潜伏在物理内存,导致后续应用软件调用该指针时造成的各种执行错误。

Description

检查指针异常的方法及系统
技术领域
本发明涉及计算机领域,尤其涉及一种检查指针异常的方法及系统。
背景技术
在嵌入式系统中,包括通信领域的各种终端产品,经常会遇到因内存被非法改写而导致的系统性灾难,如功能异常,死机等。由于改写内存的线程或函数(通常称肇事者)的行为发生在“过去”,而出现问题的线程或函数(通常称被害者)发生灾难,则是在肇事之后的很长一段时间。因此,面对残留的现场,技术人员往往无法找到肇事者,无从分析发生问题的原因,更无从解决问题。
异常指针(通常称为:野指针)非法改写内存是非法改写内存的一种常用手段。该手段没有一般的系统性的方法解决。对该类问题,目前的方法是不停的加调试信息,不停的复现,逐步总结问题发生的规律,以缩小查找范围,直至找肇事者。这种分析定位野指针改写内存问题的方法,过程复杂,准确率低,尤其是在问题出现概率极其低的情况下,这更是一个非常痛苦并且消耗人力的过程。
因此,需要对现有的方式进行改进。
发明内容
本发明实施例提供一种检查指针异常的方法及系统,用于解决现有技术中难于在第一时间发现异常指针的问题。
本发明实施例采用以下技术方案:
第一方面,提供一种检查指针异常的方法,包括:在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存;通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作。
优选地,所述建立与所分配的物理内存相映射的虚拟内存的方式包括:预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系。
优选地,所述将空闲的虚拟内存进行分组的方式包括:按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组;将每组的虚拟内存地址信息设置索引。
优选地,所述根据所分配的物理内存的地址段来选取至少一组虚拟内存的方式包括:按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
优选地,所述方法还包括:在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射。
优选地,在断开所述虚拟内存与所述物理内存之间的映射的步骤之后,还包括:将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
第二方面,还提供一种检查指针异常的系统,包括:内存分配模块,用于在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存;读写操作模块,用于通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;检查模块,用于检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则执行所述读写操作模块。
优选地,所述内存分配模块用于预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系。
优选地,所述内存分配模块还用于按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组;将每组的虚拟内存地址信息设置索引。
优选地,所述内存分配模块还用于按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
优选地,所述系统还包括:内存释放模块,用于在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射关系。
优选地,所述内存释放模块还用于在断开所述虚拟内存与所述物理内存之间的映射之后,将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
如上所述,本发明的检查指针异常的方法及系统,具有以下有益效果:本方案能够直接确定并发出异常信息,由此实现了野指针潜伏在物理内存,导致后续应用软件调用该指针时造成的各种执行错误;将空闲的虚拟内存进行分组,并以分组形式建立映射关系,能够有效减少虚拟内存碎片的产生,提高虚拟内存的使用率;按照使用频次由低到高的优先级次序来选取对应所分配的物理内存的地址段的至少一组虚拟内存,能有效防止某些虚拟内存频繁被占用,所导致的异常指针未被释放的情况不易被发现的情况;将被释放的虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾,对应使用频次的优先级次序,便于所述检查系统在调用时索引空闲的虚拟内存。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明的检查指针异常的方法的一个实施例的方法流程图。
图2是本发明的检查指针异常的方法的又一个实施例的方法流程图。
图3是本发明的检查指针异常的系统的一个实施例的结构方框图。
图4是本发明的检查指针异常的系统的又一个实施例的结构方框图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供一种检查指针异常的方法。所述检查方法主要由检查系统来执行。所述检查系统包括安装在电子设备中的软件和硬件。所述电子设备包括但不限于:计算机设备、移动设备、服务器设备等。所述电子设备中包括物理内存和虚拟内存。优选地,所述电子设备中还可包含用于管理物理内存、虚拟内存的内存管理单元(MMU)。
在步骤S1中,所述检查系统在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存。
具体地,所述检查系统可利用内存管理单元、或自行获取应用软件申请物理内存的指令。当应用软件发送所述指令以占用物理内存暂存数据时,所述检查系统在空闲的虚拟内存中选取对应于所分配的物理内存大小的虚拟内存,并建立与所分配的物理内存相映射的虚拟内存,将所建立的虚拟内存的地址信息(如地址信息列表、或地址信息段等)返回给相应的应用软件。
优选地,为了便于对虚拟内存的管理,减少虚拟内存碎片。所述检查系统建立与所分配的物理内存相映射的虚拟内存的方式为:预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系。
具体地,所述检查系统预先从空闲的虚拟内存中划出一部分作为用于映射的专用虚拟内存,并将其按照预设的大小进行分组,当有应用软件申请分配物理内存时,根据所分配的物理内存的大小选取至少一组虚拟内存,建立与所分配的物理内存之间的映射关系。
在此,若所述检查系统所选取的虚拟内存组大于所分配的物理内存时,可将所选取的虚拟内存组中多余的虚拟内存继续空闲处置;也可以将多余的虚拟内存优选分配给下一申请分配物理内存的应用软件。
优选地,所述检查系统可以按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组。一种更快捷的方式是,所述检查系统将每组的虚拟内存地址信息设置索引。例如,所述检查系统从空闲虚拟内存中选取地址信息相邻的部分,并将其按照预设规则进行分组,再将各组的空闲虚拟内存地址信息作链表管理。其中,所述预设规则包括但不限于:按照预设的地址段的长度、将所选取的地址信息平均分配、根据历史应用软件所申请的物理内存的大小而设置分组等。
在此,所述检查系统可以按照分组的顺序来选取对应所分配的物理内存的地址段的至少一组虚拟内存。优选地,所述检查系统按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
具体地,在不划分专用的虚拟内存的情况下,所述检查系统优选选择近期未被使用的空闲虚拟内存组,以防止占用了其他直接调用虚拟内存的应用软件的正常运行。
在建立了上述映射关系之后,所述应用软件将向所分配的虚拟内存发送读写指令,此时,所述检查系统执行步骤S2。
在步骤S2中,所述检查系统通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作。
具体地,所述检查系统根据占用所分配的虚拟内存的应用软件的读写操作指令,通过所述映射关系执行将数据写入所述物理内存、或从所述物理内存中读取数据的操作。
当应用软件不再需要占用物理内存时,将输出释放内存的指令。基于该释放内存的指令,所述检查系统执行步骤S3。如图2所示。
在步骤S3中,所述检查系统在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射。
具体地,所述检查系统在接收到所述释放内存的指令时,不但清空所分配的物理内存,还删除其与虚拟内存的映射关系,使得所占用的虚拟内存恢复至空闲虚拟内存。
例如,所述检查系统在接收到所述释放内存的指令时,断开所占用的虚拟内存组与所述物理内存之间的映射,以得到一块地址段完整的空闲虚拟内存。如此能够减少虚拟内存碎片产生。
优选地,所述检查系统将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
具体地,所述检查系统对所管理的空闲的虚拟内存进行列表式的索引管理,当产生新的空闲虚拟内存时,将其地址信息放在该列表的末尾,以便降低其被占用的频率。由此可以有效提高异常指针的发现几率。
例如,所述检查系统预先将空闲的虚拟内存组进行链表式的索引管理。当产生新的空闲虚拟内存组时,所述检查系统将所述新的空闲虚拟内存组所对应的地址信息添加到该链表的末尾。当所述检查系统依据新的读写操作指令占用空闲虚拟内存组时,可从该链表的前端选取至少一个空闲的虚拟内存组。
在上述步骤S2、甚至步骤S3的执行过程中,所述检查系统还执行步骤S4。
在步骤S4中,所述检查系统检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作。
具体地,所述检查系统一方面通过所述映射关系帮助应用软件执行读/写内存数据的操作。另一方面还管理其他空闲的虚拟内存。当接收到包含了指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令时,所述检查系统将暂停所有应用软件的读/写内存数据的操作,并发出包含所述读写操作指令的异常信息。如此,技术人员能够及时发现指针异常的异常报告,并及时进行处理。反之,则执行步骤S2。
例如,所述检查系统接收到包含读取指向虚拟内存a1的指针的读写操作指令,检测已建立所述映射关系中是否包含虚拟内存a1,若是,则按照所述映射关系读取与所述虚拟内存a1相对应的物理内存b1中的数据。反之,则发出异常信息。
或者,所述检查系统还检查在执行步骤S3以后,仍有指针指向已空闲的虚拟内存时,所述检查系统发出异常信息。
如图3所示,本发明提供一种检查指针异常的系统。所述检查系统1包括安装在电子设备中的软件和硬件。所述电子设备包括但不限于:计算机设备、移动设备、服务器设备等。所述电子设备中包括物理内存和虚拟内存。优选地,所述电子设备中还可包含用于管理物理内存、虚拟内存的内存管理单元(MMU)。
所述检查系统1中包括:内存分配模块11、读写操作模块12、检查模块14。
所述内存分配模块11用于在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存。
具体地,所述内存分配模块11可利用内存管理单元、或自行获取应用软件申请物理内存的指令。当应用软件发送所述指令以占用物理内存暂存数据时,所述内存分配模块11在空闲的虚拟内存中选取对应于所分配的物理内存大小的虚拟内存,并建立与所分配的物理内存相映射的虚拟内存,将所建立的虚拟内存的地址信息(如地址信息列表、或地址信息段等)返回给相应的应用软件。
优选地,为了便于对虚拟内存的管理,减少虚拟内存碎片。所述内存分配模块11建立与所分配的物理内存相映射的虚拟内存的方式为:预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系。
具体地,所述内存分配模块11预先从空闲的虚拟内存中划出一部分作为用于映射的专用虚拟内存,并将其按照预设的大小进行分组,当有应用软件申请分配物理内存时,根据所分配的物理内存的大小选取至少一组虚拟内存,建立与所分配的物理内存之间的映射关系。
在此,若所述内存分配模块11所选取的虚拟内存组大于所分配的物理内存时,可将所选取的虚拟内存组中多余的虚拟内存继续空闲处置;也可以将多余的虚拟内存优选分配给下一申请分配物理内存的应用软件。
优选地,所述内存分配模块11可以按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组。一种更快捷的方式是,所述内存分配模块11将每组的虚拟内存地址信息设置索引。例如,所述内存分配模块11从空闲虚拟内存中选取地址信息相邻的部分,并将其按照预设规则进行分组,再将各组的空闲虚拟内存地址信息作链表管理。其中,所述预设规则包括但不限于:按照预设的地址段的长度、将所选取的地址信息平均分配、根据历史应用软件所申请的物理内存的大小而设置分组等。
在此,所述内存分配模块11可以按照分组的顺序来选取对应所分配的物理内存的地址段的至少一组虚拟内存。优选地,所述内存分配模块11按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
具体地,在不划分专用的虚拟内存的情况下,所述内存分配模块11优选选择近期未被使用的空闲虚拟内存组,以防止占用了其他直接调用虚拟内存的应用软件的正常运行。
在建立了上述映射关系之后,所述应用软件将向所分配的虚拟内存发送读写指令,此时,所述检查系统1执行读写操作模块12。
所述读写操作模块12用于通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作。
具体地,所述读写操作模块12根据占用所分配的虚拟内存的应用软件的读写操作指令,通过所述映射关系执行将数据写入所述物理内存、或从所述物理内存中读取数据的操作。
优选地,所述检查系统还包括:内存释放模块13。当应用软件不再需要占用物理内存时,将输出释放内存的指令。基于该释放内存的指令,所述检查系统1执行所述内存释放模块13。如图4所示。
所述内存释放模块13用于在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射。
具体地,所述内存释放模块13在接收到所述释放内存的指令时,不但清空所分配的物理内存,还删除其与虚拟内存的映射关系,使得所占用的虚拟内存恢复至空闲虚拟内存。
例如,所述内存释放模块13在接收到所述释放内存的指令时,断开所占用的虚拟内存组与所述物理内存之间的映射,以得到一块地址段完整的空闲虚拟内存。如此能够减少虚拟内存碎片产生。
优选地,所述内存释放模块13将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
具体地,所述内存释放模块13对所管理的空闲的虚拟内存进行列表式的索引管理,当产生新的空闲虚拟内存时,将其地址信息放在该列表的末尾,以便降低其被占用的频率。由此可以有效提高异常指针的发现几率。
例如,所述内存释放模块13预先将空闲的虚拟内存组进行链表式的索引管理。当产生新的空闲虚拟内存组时,所述内存释放模块13将所述新的空闲虚拟内存组所对应的地址信息添加到该链表的末尾。当所述内存释放模块13依据新的读写操作指令占用空闲虚拟内存组时,可从该链表的前端选取至少一个空闲的虚拟内存组。
在上述读写操作模块12、甚至内存释放模块13的执行过程中,所述检查系统1还执行检查模块14。
所述检查模块14用于检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则执行所述读写操作模块12。
具体地,所述检查模块14一方面通过所述映射关系帮助应用软件执行读/写内存数据的操作。另一方面还管理其他空闲的虚拟内存。当接收到包含了指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令时,所述检查模块14将暂停所有应用软件的读/写内存数据的操作,并发出包含所述读写操作指令的异常信息。如此,技术人员能够及时发现指针异常的异常报告,并及时进行处理。反之,则执行所述读写操作模块12。
例如,所述检查模块14接收到包含读取指向虚拟内存a1的指针的读写操作指令,检测已建立所述映射关系中是否包含虚拟内存a1,若是,则按照所述映射关系读取与所述虚拟内存a1相对应的物理内存b1中的数据。反之,则发出异常信息。
或者,所述检查模块14还在所述内存释放模块13释放物理内存以后,检查到仍有指针指向已空闲的虚拟内存时,发出异常信息。
综上所述,本发明的检查指针异常的方法及系统,通过将直接分配给应用软件的物理内存转为对应分配虚拟内存并映射到所分配的物理内存的方式,来隔离应用软件与物理内存的直接交互,当有异常的指针(野指针)指向未建立映射关系的虚拟内存时,本方案能够直接确定并发出异常信息,由此实现了野指针潜伏在物理内存,导致后续应用软件调用该指针时造成的各种执行错误;将空闲的虚拟内存进行分组,并以分组形式建立映射关系,能够有效减少虚拟内存碎片的产生,提高虚拟内存的使用率;按照使用频次由低到高的优先级次序来选取对应所分配的物理内存的地址段的至少一组虚拟内存,能有效防止某些虚拟内存频繁被占用,所导致的异常指针未被释放的情况不易被发现的情况;将被释放的虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾,对应使用频次的优先级次序,便于所述检查系统在调用时索引空闲的虚拟内存。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (8)

1.一种检查指针异常的方法,其特征在于,包括:
在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存;
通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;
检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;
其中,所述建立与所分配的物理内存相映射的虚拟内存的方式包括:
预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系;
其中,所述将空闲的虚拟内存进行分组的方式包括:按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组;将每组的虚拟内存地址信息设置索引;
其中,按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组包括:从空闲的虚拟内存中选取地址信息相邻的部分,并将选取的虚拟内存按照预设规则进行分组,所述预设规则包括:按照预设的地址段的长度,或将所选取的地址信息平均分配,或根据历史应用软件所申请的物理内存的大小而设置分组。
2.根据权利要求1所述的检查指针异常的方法,其特征在于,所述根据所分配的物理内存的地址段来选取至少一组虚拟内存的方式包括:
按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
3.根据权利要求1所述的检查指针异常的方法,其特征在于,还包括:在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射关系。
4.根据权利要求3所述的检查指针异常的方法,其特征在于,在断开所述虚拟内存与所述物理内存之间的映射关系的步骤之后,还包括:
将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
5.一种检查指针异常的系统,其特征在于,包括:
内存分配模块,用于在检测到分配物理内存的操作时,建立与所分配的物理内存相映射的虚拟内存,并返回所建立的虚拟内存;
读写操作模块,用于通过所建立的映射关系,将读/写所述虚拟内存的操作转为相应的读/写所述物理内存的操作;
检查模块,用于检测是否接收到包含指向未与所述物理内存建立映射关系的虚拟内存的指针的读写操作指令,若是,则发出异常信息,反之,则执行所述读写操作模块;
其中,所述内存分配模块用于预先将空闲的虚拟内存进行分组,根据所分配的物理内存的地址段来选取至少一组虚拟内存,并建立所选取的至少一组虚拟内存与所分配的物理内存之间的映射关系;
其中,所述内存分配模块具体包括:内存分组子模块,用于按照空闲的虚拟内存的地址信息的顺序对空闲的虚拟内存进行分组;索引设置子模块,用于将每组的虚拟内存地址信息设置索引;
其中,所述内存分组子模块具体用于:从空闲的虚拟内存中选取地址信息相邻的部分,并将选取的虚拟内存按照预设规则进行分组,所述预设规则包括:按照预设的地址段的长度,或将所选取的地址信息平均分配,或根据历史应用软件所申请的物理内存的大小而设置分组。
6.根据权利要求5所述的检查指针异常的系统,其特征在于,所述内存分配模块还用于按照使用频次由低到高的优先级次序,选取对应所分配的物理内存的地址段的至少一组虚拟内存。
7.根据权利要求5所述的检查指针异常的系统,其特征在于,还包括:内存释放模块,用于在检测到所述物理内存被释放时,断开所述虚拟内存与所述物理内存之间的映射关系。
8.根据权利要求7所述的检查指针异常的系统,其特征在于,所述内存释放模块还用于在断开所述虚拟内存与所述物理内存之间的映射关系之后,将所述虚拟内存的地址信息添加到空闲虚拟内存的地址信息列表的末尾。
CN201510369613.7A 2015-06-29 2015-06-29 检查指针异常的方法及系统 Active CN106326094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510369613.7A CN106326094B (zh) 2015-06-29 2015-06-29 检查指针异常的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510369613.7A CN106326094B (zh) 2015-06-29 2015-06-29 检查指针异常的方法及系统

Publications (2)

Publication Number Publication Date
CN106326094A CN106326094A (zh) 2017-01-11
CN106326094B true CN106326094B (zh) 2019-10-18

Family

ID=57722574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510369613.7A Active CN106326094B (zh) 2015-06-29 2015-06-29 检查指针异常的方法及系统

Country Status (1)

Country Link
CN (1) CN106326094B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145582B (zh) * 2017-05-09 2022-01-04 深圳Tcl新技术有限公司 数据库游标的控制方法与数据库系统
CN110618905B (zh) * 2019-08-06 2023-05-09 晶晨半导体(深圳)有限公司 一种检测ddr内存模块中异常ddr内存的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581108A (zh) * 2003-07-31 2005-02-16 深圳市中兴通讯股份有限公司南京分公司 一种具有内存保护功能的内存管理方法
CN1673979A (zh) * 2004-03-24 2005-09-28 华为技术有限公司 一种内存分配方法
CN101976225A (zh) * 2010-10-26 2011-02-16 深圳创维-Rgb电子有限公司 一种数字机顶盒系统内存的分配方法、模块和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581108A (zh) * 2003-07-31 2005-02-16 深圳市中兴通讯股份有限公司南京分公司 一种具有内存保护功能的内存管理方法
CN1673979A (zh) * 2004-03-24 2005-09-28 华为技术有限公司 一种内存分配方法
CN101976225A (zh) * 2010-10-26 2011-02-16 深圳创维-Rgb电子有限公司 一种数字机顶盒系统内存的分配方法、模块和装置

Also Published As

Publication number Publication date
CN106326094A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN102955851B (zh) 一种数据库的切换方法和装置
EP3916559A1 (en) Prioritizing data reconstruction in distributed storage systems
CN103838859B (zh) 一种减少linux下多进程间数据拷贝的方法
CN109376011B (zh) 虚拟化系统中管理资源的方法和装置
CN103399781B (zh) 云服务器及其虚拟机管理方法
CN104376036A (zh) 具有减少时延的分组处理的套接字管理
CN111770002A (zh) 测试数据转发控制方法、装置、可读存储介质和电子设备
CN109656895A (zh) 分布式存储系统、数据写入方法、装置和存储介质
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
CN109600430A (zh) 一种数据管理方法、系统及电子设备和存储介质
CN102982182A (zh) 一种数据存储规划方法及装置
CN109669822A (zh) 电子装置、备用存储池的创建方法和计算机可读存储介质
CN109902059A (zh) 一种cpu与gpu之间的数据传输方法
CN101827120A (zh) 一种集群存储方法及系统
CN107688512A (zh) 一种优化虚拟机数据备份方法和系统
CN102968457A (zh) 数据库间切换方法和系统
CN111625383A (zh) 进程异常事件处理方法、装置、电子设备及存储介质
CN106326094B (zh) 检查指针异常的方法及系统
CN115525417A (zh) 数据通信方法、通信系统及计算机可读存储介质
CN104199729B (zh) 一种资源管理方法及系统
CN109873714A (zh) 云计算节点配置更新方法及终端设备
CN108241616B (zh) 消息推送方法和装置
CN103810038A (zh) 一种ha集群中虚拟机存储文件迁移方法及其装置
CN103051478B (zh) 一种大容量电信网管系统及其设置和应用方法
CN110162395A (zh) 一种内存分配的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20170111

Assignee: Shanghai Li Ke Semiconductor Technology Co., Ltd.

Assignor: Leadcore Technology Co., Ltd.

Contract record no.: 2018990000159

Denomination of invention: Method and system for inspecting abnormity of pointer

License type: Common License

Record date: 20180615

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant
GR01 Patent grant