CN101599046A - 一种内存检测方法及装置 - Google Patents
一种内存检测方法及装置 Download PDFInfo
- Publication number
- CN101599046A CN101599046A CNA2009101081378A CN200910108137A CN101599046A CN 101599046 A CN101599046 A CN 101599046A CN A2009101081378 A CNA2009101081378 A CN A2009101081378A CN 200910108137 A CN200910108137 A CN 200910108137A CN 101599046 A CN101599046 A CN 101599046A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory
- state value
- applying
- value
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明适用于存储器领域,提供了一种内存检测方法及装置,所述方法包括下述步骤:A.为不同状态的内存设置对应的状态值;B.对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存错误。本发明实施例通过根据内存的不同状态为内存设置对应的状态值,对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存溢出、异常或者野指针现象,从而可以及时、快速、有效的在计算机程序运行过程中检测出内存中发生的内存溢出、异常或者野指针等错误现象,减少了计算机程序的隐患,给程序调试带来方便。
Description
技术领域
本发明属于存储器领域,尤其涉及一种内存检测方法及装置。
背景技术
内存管理在计算机系统设计中是极其重要的,高效的内存分配、释放和整理在应用中已越来越重要,内存在使用过程中经常出现内存溢出、内存异常或者野指针等现象,导致计算机程序异常或者错误,严重时将导致计算机死机,因此内存的检测对计算机系统和计算机程序是非常重要的。其中内存溢出是指计算机程序按照指定的大小分配内存区域存储数据后,写入内存的数据超出预先分配的内存区域,从而导致改写了其他内存区域的数据。内存异常是指计算机程序按照指定的大小分配内存区域后,该内存区域内的数据被非法改写。野指针是指向“垃圾”内存的指针,一般是指未被初始化的指针变量,或者指针变量已被释放但在其他地方依旧使用的指针。
在大型的计算机程序中,一般需要从计算机操作系统中为该计算机程序分配一块内存,并有计算机程序自行对这块内存进行管理以获得更快的内存分配和释放速度。在现有的需要自行进行内存管理的计算机程序中,一般不对内存进行检测,或者仅对内存的申请和释放进行管理,再在计算机程序退出时简单的检测内存泄漏,这种内存检测方法难以在计算机程序运行过程中检测出内存异常、内存溢出或者野指针等现象,在计算机程序出错时,增加了定位内存异常、内存溢出或者野指针等现象的难度,降低了计算机程序效率。
发明内容
本发明实施例的目的在于提供一种内存检测方法,旨在解决现有内存检测方法难以及时检测出内存溢出、异常等错误的问题。
本发明实施例是这样实现的,一种内存检测方法,所述方法包括下述步骤:
A、为不同状态的内存设置对应的状态值;
B、对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存错误。
本发明实施例的另一目的在于提供一种内存检测装置,所述装置包括:
状态值设置单元,用于为不同状态的内存设置对应的状态值;
内存检测单元,用于对内存使用情况进行检测,根据所述状态值设置单元设置的内存的状态值判断内存是否发生内存错误。
在本发明实施例中,根据内存的不同状态为内存设置对应的状态值,对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存溢出、异常或者野指针现象,从而可以及时、快速、有效的在计算机程序运行过程中检测出内存中发生的内存溢出、异常或者野指针等错误现象,减少了计算机程序的隐患,给程序调试带来方便。
附图说明
图1是本发明实施例提供的内存检测方法的实现流程图;
图2是本发明实施例提供的内存检测装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,根据内存的使用状态为内存设置对应的状态值,在使用内存或者内存中的数据时,通过检测该内存的状态值判断该内存是否发生内存错误,如内存溢出、异常或者野指针现象。
图1示出了本发明实施例提供的内存检测方法的实现流程,详述如下:
在步骤S101中,为不同状态的内存设置对应的状态值。其具体步骤如下:
A、在对内存进行初始化时,设置该内存的状态值为已初始化。在本发明实施例中,可以通过将该内存中的数据填充为用于标识该内存的状态值为已初始化的数据,如可以将该内存中的数据填充为0xab,以标识该内存的状态值为已初始化。
B、在释放一块内存时,设置该内存的状态值为已释放。在本发明实施例中,可以通过将该内存中的数据填充为用于标识该内存的状态值为已释放的数据,如可以将该内存中的数据填充为0xfe,以标识该内存的状态值为已释放。
C、在申请或者重新分配一块内存时,设置该内存的状态值为已申请但未被初始化,并为申请的内存多分配大小为n字节的内存,用于存储申请到的内存的初始值(以后称为magic值)。该magic值一般选择用户数据出现概率较小的一个值。在本发明实施例中,可以通过将已申请到的内存中的数据填充为用于标识该内存的状态值为已申请但未被初始化的数据,如可以将已申请到的内存中的数据填充为0xcd,以标识该内存的状态值为已申请但未被初始化。其具体步骤如下:
a、在申请或者重新分配一块内存时,在内存地址管理器中记录分配内存代码所对应的文件名和行号,并为申请的内存多分配大小为n字节的内存。其中n为大于或者等于2的自然数。如申请或者重新分配一块内存时,为申请的内存多分配8个字节的内存;
b、在申请到的内存的前x字节填充第一初始值(以后称为第一magic值),在申请到的内存的最后y字节填充第二初始值(以后称为第二magic值),以标识申请到的内存的上、下限。其中x、y均为大于或者等于1且小于n的自然数,且x+y=n。如给申请到的内存的前4字节填充第一magic值为F1F2F3F4,给申请到的内存的最后4个字节填充第二magic值为F5F6F7F8;
c、设置已申请到给计算机程序使用的内存的状态值为已申请但未被初始化。如可以将已申请到给计算机程序使用的内存中的数据填充为0xcd,以标识该内存的状态值为已申请但未被初始化。即该内存中存储的数据是未被初始化的。
请参阅表1.1,为本发明实施例提供的计算机程序申请前、申请到、释放一块内存时内存中的实际数据的一个示例。其中ptr(CD)是指申请到的给计算机程序使用的内存。对于已经初始化的内存,该内存中的数据被填充为0xab,对于已释放的内存,该内存中的数据被填充为0xfe,对于已经申请到的内存,该内存的前端部分的数据被填充为F1F2F3F4,该内存的后端部分的数据被填充为F5F6F7F8,已申请到给计算机程序使用的内存,其内存中的数据被填充为0xcd。
表1.1
... | ABABABAB | ABABABAB... | ABABABAB | ... |
... | F1F2F3F4 | ptr(CD) | F5F6F7F8 | ... |
... | FEFEFEFE | FEFEFEFE... | FEFEFEFE | ... |
... | F1F2F3F4 | CDCDCDCD... | F5F6F7F8 | ... |
在步骤S102中,对内存使用情况进行检测,根据内存的状态值判断内存是否发生错误。其中内存发生错误包括但不限于内存溢出、内存异常、使用未初始化变量或者野指针等现象。其具体步骤如下:
A、检测已申请的内存的magic值是否与申请内存时设置的magic值相同,以判断已申请的内存是否发生了内存溢出或者内存异常。其具体过程如下:
检测已申请的内存的第一magic值是否被改写,如果是,则判定此内存发生了内存异常,检测已申请的内存的第二magic值是否被覆盖,如果是,则判定该内存发生了内存溢出。
如当检测到已申请的内存的前端部分的第一magic值F1F2F3F4被改写了,则判定此内存发生了内存异常,当检测到该内存的后端部分的第二magic值F5F6F7F8被覆盖了,则判定该内存发生了内存溢出。
B、检测未被分配的内存的状态值是否为已初始化或者已释放,以判断未被分配的内存是否发生了内存异常。其具体过程如下:
检测未被分配的内存的状态值是否为已初始化或者已释放,如果不是,则判定未被分配的内存发生了内存异常,即判定未被分配的内存被非法改写了。
为了达到更好的内存检测效果,在本发明另一实施例中,该方法还包括下述步骤:
C、检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,以判断是否发生了变量未被初始化就使用的现象。其具体判断过程如下:
检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,如果是,则判定发生了变量未被初始化就使用的现象。如当通过将已申请到的给计算机程序使用的内存中的数据填充为0xcd来设置该内存的状态值为已申请但未被初始化时,则如果检测到计算机程序使用的数据是0xcd,则判定发生了变量未被初始化就使用的现象。
为了更好的内存检测效果,在本发明另一实施例中,该方法还包括下述步骤:
D、检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,以判断是否发生了野指针引用现象。其具体判断过程如下:
检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,如果是,则判定发生了野指针引用现象。如当通过将已释放的内存中的数据填充为0xfe来设置该内存的状态值为已释放时,则如果检测到计算机程序使用的指针数据是0xfe,则判定发生了野指针引用现象。
为了及时的将内存检测结果呈现给用户,以使用户尽快的定位到内存错误的位置和原因,在本发明另一实施例中,该方法还包括下述步骤:
在步骤S103中,输出内存检测结果。
在本发明实施例中,对S102中出现的各种异常的输出过程具体如下:
A、输出发生了何种异常,根据对应检测的到内存异常的地址,在内存地址管理器查询对应的文件名和行数,并在内存地址管理器查询此内存地址的前一块和后一块已分配的内存所对应的文件名和行数,输出对应的异常内存的文件名和行数,以及对应可能导致此内存异常的紧邻的前后内存所对应的文件名和行数。
B、输出发生了何种异常,根据产生异常的内存地址,在内存地址管理器查询此内存地址的前一块和后一块已分配的内存所对应的文件名和行数,输出异常的内存地址和对应可能导致此内存异常的紧邻的前后内存所对应的文件名和行数。
C、输出发生了何种异常,并根据内存地址在内存地址管理器查询对应的文件名和行数,输出对应的文件名和行数。
D、输出发生了何种异常,并根据内存地址在内存地址管理器查询对应的文件名和行数,输出对应的文件名和行数。
图2示出了本发明实施例提供的内存检测装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该内存检测装置可以是内置于具有内存应用的电子设备中的软件单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到具有内存应用的电子设备中。其中:
状态值设置单元1为不同状态的内存设置对应的状态值。该状态值设置单元1包括初始化状态值设置单元11、释放状态值设置单元12和已申请状态值设置单元13。其中:
初始化状态值设置单元11在对内存进行初始化时,设置该内存的状态值为已初始化。在本发明实施例中,可以通过将该内存中的数据填充为用于标识该内存的状态值为已初始化的数据,如可以将该内存中的数据填充为0xab,以标识该内存的状态值为已初始化。
释放状态值设置单元12在释放一块内存时,设置该内存的状态值为已释放。在本发明实施例中,可以通过将该内存中的数据填充为用于标识该内存的状态值为已释放的数据,如可以将该内存中的数据填充为0xfe,以标识该内存的状态值为已释放。
已申请状态值设置单元13在申请或者重新分配一块内存时,设置该内存的状态值为已申请但未被初始化,并为申请的内存多分配大小为n字节的内存,用于存储申请到的内存的magic值。在本发明实施例中,可以通过将已申请到给计算机程序使用的内存中的数据填充为用于标识该内存的状态值为已申请但未被初始化的数据,如可以将已申请到给计算机程序使用的内存中的数据填充为0xcd,以标识该内存的状态值为已申请但未被初始化。
该已申请状态值设置单元13包括内存分配模块131、初始值设置模块132和已申请状态值设置模块133。其中:
内存分配模块131在申请或者重新分配一块内存时,为申请的内存多分配大小为n字节的内存。其中n为大于或者等于2的自然数。如申请或者重新分配一块内存时,为申请的内存多分配8个字节的内存;
初始值设置模块132在申请到的内存的前x字节填充第一magic值,给申请到的内存的最后y字节填充第二magic值,以标识申请到的内存的上、下限。其中x、y均为大于或者等于1且小于n的自然数,且x+y=n。如给申请到的内存的前4字节填充第一magic值为F1F2F3F4,给申请到的内存的最后4个字节填充第二magic值为F5F6F7F8;
已申请状态值设置模块133设置已申请到给计算机程序使用的内存的状态值为已申请但未被初始化。如可以将已申请到给计算机程序使用的内存中的数据填充为0xcd,以标识该内存的状态值为已申请但未被初始化。即该内存中存储的数据是未被初始化的。
内存检测单元2对内存使用情况进行检测,根据内存的状态值判断内存是否发生错误。其中内存发生错误包括但不限于内存溢出、内存异常、使用未初始化变量或者野指针等现象。该内存检测单元2包括已申请内存检测单元21和未分配内存检测单元22。其中:
已申请内存检测单元21检测已申请的内存的magic值是否与申请内存时设置的magic值相同,以判断已申请的内存是否发生了内存溢出或者内存异常。其具体过程如下:
检测已申请的内存的第一magic值是否被改写,如果是,则判定此内存发生了内存异常,检测已申请的内存的第二magic值是否被覆盖,如果是,则判定该内存发生了内存溢出。
如当检测到已申请的内存的前端部分的第一magic值F1F2F3F4被改写了,则判定此内存发生了内存异常,当检测到该内存的后端部分的第二magic值F5F6F7F8被覆盖了,则判定该内存发生了内存溢出。
未分配内存检测单元22检测未被分配的内存的状态值是否为已初始化或者已释放,以判断未被分配的内存是否发生了内存异常。其具体过程如下:
检测未被分配的内存的状态值是否为已初始化或者已释放,如果不是,则判定未被分配的内存发生了内存异常,即判定未被分配的内存被非法改写了。
为了达到更好的内存检测效果,在本发明另一实施例中,内存检测单元2还包括未初始化检测单元23。该未初始化检测单元23检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,以判断是否发生了变量未被初始化就使用的现象。其具体判断过程如下:
检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,如果是,则判定发生了变量未被初始化就使用的现象。如当通过将已申请到的给计算机程序使用的内存中的数据填充为0xcd来设置该内存的状态值为已申请但未被初始化时,则如果检测到计算机程序使用的数据是0xcd,则判定发生了变量未被初始化就使用的现象。
为了更好的内存检测效果,在本发明另一实施例中,内存检测单元2还包括野指针检测单元24。该野指针检测单元24检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,以判断是否发生了野指针引用现象。其具体判断过程如下:
检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,如果是,则判定发生了野指针引用现象。如当通过将已释放的内存中的数据填充为0xfe来设置该内存的状态值为已释放时,则如果检测到计算机程序使用的指针数据是0xfe,则判定发生了野指针引用现象。
为了及时的将内存检测结果呈现给用户,以使用户尽快的定位到内存错误的位置和原因,在本发明另一实施例中,该装置还包括检测结果输出单元3。该检测结果输出单元3输出内存检测结果。其中输出单元3输出内存检测单元2检测到的各种异常的过程具体如下:
A、输出发生了何种异常,根据对应检测的到内存异常的地址,在内存地址管理器查询对应的文件名和行数,并在内存地址管理器查询此内存地址的前一块和后一块已分配的内存所对应的文件名和行数,输出对应的异常内存的文件名和行数,以及对应可能导致此内存异常的紧邻的前后内存所对应的文件名和行数。
B、输出发生了何种异常,根据产生异常的内存地址,在内存地址管理器查询此内存地址的前一块和后一块已分配的内存所对应的文件名和行数,输出异常的内存地址和对应可能导致此内存异常的紧邻的前后内存所对应的文件名和行数。
C、输出发生了何种异常,并根据内存地址在内存地址管理器查询对应的文件名和行数,输出对应的文件名和行数。
D、输出发生了何种异常,并根据内存地址在内存地址管理器查询对应的文件名和行数,输出对应的文件名和行数。
在本发明实施例中,根据内存的不同状态为内存设置对应的状态值,对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存溢出、异常或者野指针现象,可以及时、快速、有效的检测出内存中发生的内存溢出、异常或者野指针现象,减少计算机程序的隐患,方便程序调试。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (11)
1、一种内存检测方法,其特征在于,所述方法包括下述步骤:
A、为不同状态的内存设置对应的状态值;
B、对内存使用情况进行检测,根据内存的状态值判断内存是否发生内存错误。
2、如权利要求1所述的方法,其特征在于,所述内存错误包括内存溢出、异常、使用未初始化变量或者野指针现象。
3、如权利要求1或2所述的方法,其特征在于,所述步骤A具体包括:
A1、在对内存进行初始化时,设置该内存的状态值为已初始化;
A2、在释放一块内存时,设置该内存的状态值为已释放;
A3、在申请或者重新分配一块内存时,设置该内存的状态值为已申请但未被初始化,并为申请的内存多分配大小为n字节的内存,用于存储申请到的内存的初始值。
4、如权利要求3所述的方法,其特征在于,所述步骤A3具体包括:
在申请或者重新分配一块内存时,为申请的内存多分配大小为n字节的内存,所述n为大于或者等于2的自然数;
在申请到的内存的前x字节填充第一初始值,在申请到的内存的最后y字节填充第二初始值,以标识申请到的内存的上、下限;
设置已申请到给计算机程序使用的内存的状态值为已申请但未被初始化。
5、如权利要求3所述的方法,其特征在于,所述步骤B具体包括:
B1、检测已申请的内存的初始值是否与申请内存时设置的初始值相同,以判断已申请的内存是否发生了内存溢出或者内存异常;
B2、检测未被分配的内存的状态值是否为已初始化或者已释放,以判断未被分配的内存是否发生了内存异常。
6、如权利要求5所述的方法,其特征在于,所述步骤B还包括:
检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,以判断是否发生了变量未被初始化就使用的现象;和/或
检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,以判断是否发生了野指针引用现象。
7、一种内存检测装置,其特征在于,所述装置包括:
状态值设置单元,用于为不同状态的内存设置对应的状态值;
内存检测单元,用于对内存使用情况进行检测,根据所述状态值设置单元设置的内存的状态值判断内存是否发生内存错误。
8、如权利要求7所述的装置,其特征在于,所述状态值设置单元包括:
初始化状态值设置单元,用于在对内存进行初始化时,设置该内存的状态值为已初始化;
释放状态值设置单元,用于在释放一块内存时,设置该内存的状态值为已释放;
已申请状态值设置单元,用于在申请或者重新分配一块内存时,设置该内存的状态值为已申请但未被初始化,并为申请的内存多分配大小为n字节的内存,用于存储申请到的内存的初始值。
9、如权利要求8所述的装置,其特征在于,所述已申请状态值设置单元具体包括:
内存分配模块,用于在申请或者重新分配一块内存时,为申请的内存多分配大小为n字节的内存,所述n为大于或者等于2的自然数;
初始值设置模块,用于在申请到的内存的前x字节填充第一初始值,在申请到的内存的最后y字节填充第二初始值,以标识申请到的内存的上、下限;
已申请状态值设置模块,用于设置已申请到给计算机程序使用的内存的状态值为已申请但未被初始化。
10、如权利要求8所述的装置,其特征在于,所述内存检测单元包括:
已申请内存检测单元,用于检测已申请的内存的初始值是否与申请内存时设置的初始值相同,以判断已申请的内存是否发生了内存溢出或者内存异常;
未分配内存检测单元,用于检测未被分配的内存的状态值是否为已初始化或者已释放,以判断未被分配的内存是否发生了内存异常。
11、如权利要求10所述的装置,其特征在于,所述内存检测单元还包括:
未初始化检测单元,用于检测计算机程序使用的数据是否为状态值为已申请但未被初始化的内存中的数据,以判断是否发生了变量未被初始化就使用的现象;和/或
野指针检测单元,用于检测计算机程序使用的指针数据是否为状态值为已释放的内存中的数据,以判断是否发生了野指针引用现象。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101081378A CN101599046B (zh) | 2009-06-26 | 2009-06-26 | 一种内存检测方法及装置 |
HK10105646.5A HK1138923A1 (en) | 2009-06-26 | 2010-06-08 | Method and apparatus for memory detection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101081378A CN101599046B (zh) | 2009-06-26 | 2009-06-26 | 一种内存检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101599046A true CN101599046A (zh) | 2009-12-09 |
CN101599046B CN101599046B (zh) | 2011-12-14 |
Family
ID=41420497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101081378A Active CN101599046B (zh) | 2009-06-26 | 2009-06-26 | 一种内存检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101599046B (zh) |
HK (1) | HK1138923A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156631A (zh) * | 2011-04-27 | 2011-08-17 | Tcl集团股份有限公司 | 程序设计语言中管理指针的方法及系统 |
CN102214125A (zh) * | 2011-06-13 | 2011-10-12 | 浪潮电子信息产业股份有限公司 | 一种内存ecc功能的测试方法 |
CN102402472A (zh) * | 2010-09-17 | 2012-04-04 | 鸿富锦精密工业(深圳)有限公司 | 内存检测系统及其检测方法 |
CN102541748A (zh) * | 2011-12-28 | 2012-07-04 | 青岛海信宽带多媒体技术有限公司 | 一种内存保护方法 |
CN102789407A (zh) * | 2012-06-18 | 2012-11-21 | 上海斐讯数据通信技术有限公司 | 内存块有效性检测方法 |
CN102841832A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | 出错内存条定位系统及方法 |
CN103294606A (zh) * | 2013-05-08 | 2013-09-11 | 天脉聚源(北京)传媒科技有限公司 | 一种分配内存及检测内存溢出的方法和装置 |
CN103514068A (zh) * | 2012-06-28 | 2014-01-15 | 北京百度网讯科技有限公司 | 内存故障自动定位方法 |
CN103716234A (zh) * | 2013-12-19 | 2014-04-09 | 汉柏科技有限公司 | 一种定位报文内存泄露的方法 |
CN103853551A (zh) * | 2012-12-04 | 2014-06-11 | 德州仪器公司 | 检测未初始化的存储器读取的方法 |
CN106294170A (zh) * | 2016-08-17 | 2017-01-04 | 厦门科灿信息技术有限公司 | 嵌入式控制系统变量初始化的测试方法 |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
CN108614772A (zh) * | 2018-04-10 | 2018-10-02 | 江南大学 | 一种并发检测堆缓冲区溢出的架构及方法 |
CN108762920A (zh) * | 2018-05-18 | 2018-11-06 | 四川斐讯信息技术有限公司 | 一种动态内存中野指针的确定及定位方法 |
CN110472411A (zh) * | 2019-08-20 | 2019-11-19 | 杭州和利时自动化有限公司 | 一种内存溢出处理方法、装置、设备及可读存储介质 |
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
-
2009
- 2009-06-26 CN CN2009101081378A patent/CN101599046B/zh active Active
-
2010
- 2010-06-08 HK HK10105646.5A patent/HK1138923A1/xx unknown
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402472A (zh) * | 2010-09-17 | 2012-04-04 | 鸿富锦精密工业(深圳)有限公司 | 内存检测系统及其检测方法 |
CN102156631A (zh) * | 2011-04-27 | 2011-08-17 | Tcl集团股份有限公司 | 程序设计语言中管理指针的方法及系统 |
CN102156631B (zh) * | 2011-04-27 | 2015-04-15 | Tcl集团股份有限公司 | 程序设计语言中管理指针的方法及系统 |
CN102214125B (zh) * | 2011-06-13 | 2013-07-17 | 浪潮电子信息产业股份有限公司 | 一种内存ecc功能的测试方法 |
CN102214125A (zh) * | 2011-06-13 | 2011-10-12 | 浪潮电子信息产业股份有限公司 | 一种内存ecc功能的测试方法 |
CN102841832A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | 出错内存条定位系统及方法 |
CN102841832B (zh) * | 2011-06-24 | 2017-05-24 | 佛山慧捷电子科技有限公司 | 出错内存条定位方法 |
CN102541748A (zh) * | 2011-12-28 | 2012-07-04 | 青岛海信宽带多媒体技术有限公司 | 一种内存保护方法 |
CN102541748B (zh) * | 2011-12-28 | 2014-06-25 | 青岛海信宽带多媒体技术有限公司 | 一种内存保护方法 |
CN102789407B (zh) * | 2012-06-18 | 2015-05-27 | 上海斐讯数据通信技术有限公司 | 内存块有效性检测方法 |
CN102789407A (zh) * | 2012-06-18 | 2012-11-21 | 上海斐讯数据通信技术有限公司 | 内存块有效性检测方法 |
CN103514068A (zh) * | 2012-06-28 | 2014-01-15 | 北京百度网讯科技有限公司 | 内存故障自动定位方法 |
CN103853551A (zh) * | 2012-12-04 | 2014-06-11 | 德州仪器公司 | 检测未初始化的存储器读取的方法 |
CN103294606A (zh) * | 2013-05-08 | 2013-09-11 | 天脉聚源(北京)传媒科技有限公司 | 一种分配内存及检测内存溢出的方法和装置 |
CN103716234A (zh) * | 2013-12-19 | 2014-04-09 | 汉柏科技有限公司 | 一种定位报文内存泄露的方法 |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
CN106294170A (zh) * | 2016-08-17 | 2017-01-04 | 厦门科灿信息技术有限公司 | 嵌入式控制系统变量初始化的测试方法 |
CN106294170B (zh) * | 2016-08-17 | 2018-10-19 | 厦门科灿信息技术有限公司 | 嵌入式控制系统变量初始化的测试方法 |
CN108614772A (zh) * | 2018-04-10 | 2018-10-02 | 江南大学 | 一种并发检测堆缓冲区溢出的架构及方法 |
CN108762920A (zh) * | 2018-05-18 | 2018-11-06 | 四川斐讯信息技术有限公司 | 一种动态内存中野指针的确定及定位方法 |
CN110472411A (zh) * | 2019-08-20 | 2019-11-19 | 杭州和利时自动化有限公司 | 一种内存溢出处理方法、装置、设备及可读存储介质 |
CN110472411B (zh) * | 2019-08-20 | 2021-05-07 | 杭州和利时自动化有限公司 | 一种内存溢出处理方法、装置、设备及可读存储介质 |
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN111124921B (zh) * | 2019-12-25 | 2023-09-26 | 抖音视界有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101599046B (zh) | 2011-12-14 |
HK1138923A1 (en) | 2010-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101599046B (zh) | 一种内存检测方法及装置 | |
TWI438633B (zh) | 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置 | |
KR102329762B1 (ko) | 메모리 데이터 보호 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 | |
US10949342B2 (en) | Persistent memory garbage collection | |
CN106919454B (zh) | 基于lte协议栈的内存池问题定位方法及其系统 | |
CN103984506B (zh) | 闪存存储设备数据写的方法和系统 | |
JP5585655B2 (ja) | システム制御装置、ログ制御方法および情報処理装置 | |
US20230136649A1 (en) | Method and apparatus for restoring running status of application, and storage medium | |
CN108710583A (zh) | Ssd写缓存区的管理方法、装置、计算机设备及介质 | |
TWI448891B (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
CN107783812B (zh) | 虚拟机内存管理方法及装置 | |
CN101593152A (zh) | 一种移动终端内存泄漏检测方法及装置 | |
US20190377644A1 (en) | Boost assist metadata tables for persistent memory device updates during a hardware fault | |
CN108665939B (zh) | 为存储器提供ecc的方法与装置 | |
US11989452B2 (en) | Read-disturb-based logical storage read temperature information identification system | |
CN103914355A (zh) | 对内存重复释放进行定位的方法和装置 | |
US11561860B2 (en) | Methods and systems for power failure resistance for a distributed storage system | |
US11922067B2 (en) | Read-disturb-based logical storage read temperature information maintenance system | |
WO2020207008A1 (zh) | 一种数据验证方法、装置、电子设备及存储介质 | |
CN103984639B (zh) | 一种动态内存分配方法 | |
CN103348653B (zh) | 扩容的方法和设备、以及访问数据的方法和设备 | |
CN101706754A (zh) | 嵌入式系统中连续物理内存分配方法和装置 | |
US11922020B2 (en) | Read-disturb-based read temperature information persistence system | |
CN102156631B (zh) | 程序设计语言中管理指针的方法及系统 | |
KR101669762B1 (ko) | 비휘발성 메모리의 메모리 누수 복구 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1138923 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1138923 Country of ref document: HK |