CN101110042A - 一种检测内存访问越界的方法 - Google Patents
一种检测内存访问越界的方法 Download PDFInfo
- Publication number
- CN101110042A CN101110042A CNA2006101032630A CN200610103263A CN101110042A CN 101110042 A CN101110042 A CN 101110042A CN A2006101032630 A CNA2006101032630 A CN A2006101032630A CN 200610103263 A CN200610103263 A CN 200610103263A CN 101110042 A CN101110042 A CN 101110042A
- Authority
- CN
- China
- Prior art keywords
- memory
- information
- protection
- memory block
- address
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种检测内存访问越界的方法,在应用程序使用从内存池中申请的内存块的过程中,检测是否存在内存写入越界的情况,包括主要步骤:在应用程序所申请内存块的前端增加申请该内存块的调用代码地址信息,尾端增加保护字和空闲区长度信息,同时在空闲区填充保护标记,当应用程序释放内存时,检测是否存在内存写入越界,并提示相关的异常信息,其中包括申请代码地址信息。本发明所述的方法对现有内存管理方法的改动很小,能很容易应用到现有的内存管理系统中,具有很强的实用性。
Description
技术领域
本发明涉及一种检测内存访问越界的方法,具体地说,尤指嵌入式实时系统中检测应用程序在使用所申请的内存块的过程中是否存在内存写入越界的情况,并提示相关的异常信息。
背景技术
在嵌入式实时系统中,应用程序对内存的使用频率相当高,尤其是需要频繁地申请和释放内存。而嵌入式实时操作系统提供的动态内存管理方法是针对一般情况的,为应用程序提供内存申请和释放的接口,一方面,调用这些接口的执行效率比较低,另一方面,频繁调用这些接口申请和释放内存会形成过多的内存碎片,不仅影响执行效率,也造成内存浪费。
目前,在嵌入式实时系统中进行应用软件开发时,大多数情况下,会在操作系统基础上形成适合自身需求的内存管理方法,对操作系统的内存管理接口进行封装,提供给应用程序使用。这样的内存管理方法可能是多种多样的,但一般具有一些基本的共同特征:首先通过一次或多次调用操作系统的申请内存接口创建一个内存池,内存池由各种固定大小的内存块组成,一般相同大小的内存块组成一个区域,通过链表或其它数据结构来维护内存池;应用程序申请内存时,给其分配一个不小于所申请大小的可用内存块。所分配的内存块往往大于所申请大小,内存块中超出申请大小的部分为空闲区,应用程序不应该访问该区域。
应用程序申请到内存块后得到一个内存指针,通过该指针可以对内存块区域进行读写操作。很多情况下,由于程序代码编写上的疏忽,会造成内存访问越界问题,比如,写入时超出了所申请内存块的地址范围,覆盖了其它内存区域,可能造成程序运行异常。有时,虽然没有超出内存块的地址范围,但已超出了所申请大小,也就是覆盖了内存块中的空闲区,这种情况不一定造成程序运行异常,但同样属于程序代码错误,如不及时发现也是程序运行中的隐患。
现有技术中,为解决内存访问越界问题,试图实时检测出内存访问越界情况,要求应用程序的内存访问操作都通过专门封装的接口进行,在接口中对访问的内存地址和范围进行检查,进而判断是否存在访问越界。优点是一定程度上能实时检测出内存越界情况,但是有如下缺点:首先,应用程序对内存的读写操作都需要通过封装接口进行,必然会大大降低系统运行效率,这对嵌入式实时系统来说是不可接受的;其次,应用程序对所申请内存的使用方式是任意的,可以直接通过内存指针访问其中的地址,也可以存放某种数据结构的数据,如果全部需要通过封装接口进行,会给程序代码的编写造成极大的不便;最后,实现这种内存检测方法需要提供专门的内存管理方法,不能将其方便地应用到其它内存管理方法中。
发明内容
本发明所要解决的技术问题在于提供一种检测内存访问越界的方法,以解决内存访问越界问题,尤指嵌入式实时系统中检测应用程序在使用所申请的内存块的过程中是否存在内存写入越界的情况,并提示相关的异常信息。
为了解决上述问题,本发明提供了一种检测内存访问越界的方法,在应用程序使用从内存池中申请的内存块的过程中,检测是否存在内存写入越界的情况,其包括如下步骤:
(1)创建内存池时,如果初始化一个可用空间大小为Size的内存块,则需要为其分配的全部内存空间为可用空间大小Size加上需要为该内存块添加的前端信息和尾端信息所占空间大小之和,其中,所述尾端信息包括保护字信息、空闲区长度信息;
(2)应用程序申请内存时,如果为其找到一个合适的内存块,则将所述内存块的尾端信息中的保护字设定为保护标记,将空闲区长度设定为内存块大小Size减去用户申请大小的值,如果空闲区长度不为零,则在从所述空闲区起始地址开始,在预设区域填充保护标记;
(3)应用程序释放内存时,检测尾端信息中的保护字是否为设定的保护标记,如果不是,则提示内存访问越界的异常信息;如果保护字是设定的保护标记,则检测空闲区中已填充保护标记的区域,当发现某处不是设定的保护标记时,提示内存访问越界的异常信息。
进一步地,本发明所述的方法,其步骤(1)中进一步包括:所述前端信息包括头部信息、申请代码地址信息,所述内存块可用空间在实际使用时分为用户数据区与空闲区;
步骤(2)中进一步包括:所述内存块的前端信息中填写头部信息,并将申请代码地址设定为所获得的调用申请内存接口的代码地址;
步骤(3)中进一步包括:所述提示内存访问越界的异常信息中包括申请代码地址信息。
进一步地,其所述步骤(2)中,如果应用程序只有一个代码段,则在申请代码地址信息中只需记录偏移地址;如果应用程序包含多个代码段,则在申请代码地址信息中进一步记录代码的段地址。
进一步地,本发明所述的方法,其所述步骤(2)中,尾端信息中的保护字设定的保护标记为特殊的不常见的数值;在空闲区中填充的保护标记为特殊的不常见的数值;在空闲区中填充保护标记的预定区域的长度,根据实际需要和策略确定。
本发明所述的方法,其进一步包括:
(4)根据所述提示内存访问越界的异常信息中包括的申请代码地址信息,在程序代码中进行定位,确定所述内存块是在何处申请的,并进而确定所述内存块使用过程中存在的写入越界情况。
进一步地,其步骤(2)所述调用申请内存接口的代码地址,通过一个接口函数获得,该接口函数当在某个函数FuncA中调用时,其返回值为调用FuncA的代码的地址;其所述接口函数根据堆栈中函数调用链,向后回溯,取得调用FuncA函数时的返回地址,并将该返回地址作为FuncA函数的调用代码地址。
本发明所述方法的出发点,不是实时检测内存访问越界情况,而是在应用程序释放内存时检测该内存块的使用过程中是否存在内存写入越界情况,完全不会影响现有内存管理系统中应用程序对内存的使用。本发明所述方法不仅检查内存块尾部保护字,还检查空闲区,进行了非常完全的检查;其次,本发明所述方法提示内存访问越界的异常信息时,包括了申请代码地址信息,根据此信息在程序代码中可以进行定位,确定该内存块是在何处申请的,进而分析确定内存块使用过程中存在的写入越界情况,极大地方便了软件开发人员分析出代码中的问题。本发明所述的方法对现有内存管理方法的改动很小,能很容易应用到现有的内存管理系统中,具有很强的实用性。
附图说明
图1是本发明实施例所述的现有内存管理方法维护的内存块信息的示意图;
图2是本发明实施例所述的内存块增加前端和尾端的保护信息后的示意图。
具体实施方式
下面结合附图,对本发明实施例所述的技术方案作进一步的详细描述。
如图1所示,现有的内存管理系统中,一般在内存块前端定义有前端信息,用于管理和维护内存块,而在内存块后端不定义或很少定义尾端信息,为实施例描述简单起见,后面描述中假设没有定义尾端信息,尽管如此,本发明的方法同样适用于定义有尾端信息的内存管理方法。
如图2所示,本发明所述方法在现有前端信息的结构中增加申请代码地址信息103。一般情况下,在嵌入式实时系统中,应用程序只有一个代码段,因此只需记录偏移地址。如果应用程序包含多个代码段,则还需要在申请代码地址信息中增加记录代码的段地址。为实施例描述简单起见,后面描述中假设只有一个代码段。新的前端信息结构的C语言定义示例为:
typedef struct tagHead
{
.....0./*现有的头部信息成员*/
unsigned long GetEIP;
}THead;
GetEIP的类型可根据CPU类型来确定,如上所述示例是在32位CPU系统中的定义。
本发明所述的方法在内存块尾端增加尾端保护信息,包括保护字104和空闲区长度105。结构定义示例为:
typedef struct tagTail
{
unsigned long TailTag;
unsigned short UnusedSize;
}TTail;
根据本发明所述增加的前端和尾端保护信息,创建内存池时,在现有内存管理方法基础上需要作一定改动,具体方法如下:
(1)初始化一个可用空间大小为Size的内存块时,实际需要分配的内存空间为THead大小、TTail大小和Size之和。
(2)将THead中GetEIP设定为0。
(3)将TTail中TailTag设定为MEM_TAIL_TAG(尾端保护标记),将TTail中UnusedSize设定为0。MEM_TAIL_TAG为一较特殊的不常见的数值,如0xFCFCFCFC等。
根据本发明所述的方法,申请内存接口需要在为应用程序分配的内存块前端和尾端设定保护信息,步骤如下:
(1)假设应用程序所要申请的内存大小为UsedSize,实际为其分配的内存块大小为Size(Size>=UsedSize)。
(2)调用获取当前函数调用代码地址的接口获取调用该申请内存接口的代码地址(申请代码地址103),将THead中的GetEIP设定为申请代码地址信息。关于获取当前函数调用代码地址的接口描述详见后文描述。
(3)将TTail中TailTag设定为MEM_TAIL_TAG,UnusedSize设定为Size-UsedSize。
(4)根据内存块头部信息地址和所申请大小UsedSize,计算出空闲区102起始地址。根据UnsedSize以及实际情况需要,确定空闲区102中的保护长度ProtectSize,比如,Debug版本中ProtectSize等于UnusedSize,而Release版本中为提高效率,限制ProtectSize不能超过预定的最大值。从空闲区102起始地址开始,将ProtectSize大小的内存区域中的每个字节设定为MEM_UNUSED_TAG(空闲保护标记)。MEM_UNUSED_TAG为一较特殊的不常见的数值,如0xFC等。
根据本发明所述的方法,释放内存接口需要根据尾端信息中保护字104以及空闲区105来检测是否存在内存写入越界情况,步骤如下:
(1)根据输入参数中的内存指针可计算出内存块头部信息101地址,一般根据头部信息101可取得内存块可用大小Size,再根据头部信息101地址和内存可用大小Size计算出尾端信息地址。
(2)根据尾端信息地址读出尾端信息中保护字104,检查保护字104是否是预先设定的值(MEM_TAIL_TAG),如果是,继续步骤(3),否则提示内存访问越界的异常信息,其中包括从前端信息中获取的申请代码地址GetEIP。
(3)根据尾端信息TTail中的UnusedSize,计算出空闲区102起始地址,并根据申请内存接口中相同策略确定空闲区保护长度ProtectSize。从空闲区102起始地址开始,逐个检查ProtectSize大小的区域中每个字节的值是否是预先设定的值(MEM_UNUSED_TAG)。如果发现某个字节的值不是MEM_UNUSED_TAG,则提示内存访问越界的异常信息,其中包括从前端信息中获取的申请代码地址GetEIP。
根据本发明所述的方法,需要提供一个获取当前函数调用代码地址的接口,其功能和实现描述如下:
设该接口函数名为GetEIPFunc,其功能是当GetEIPFunc在某个函数FuncA中调用时,其返回值为调用FuncA的代码的地址。
其实现方法是根据堆栈中函数调用链,向后回溯,取得调用FuncA函数时的返回地址,我们将此返回地址看作为FuncA函数的调用代码地址。具体实现根据CPU类型和编译器的不同而有所不同。
上述具体实施方式以较佳实施例对本发明进行了说明,不应被视为对本发明范围的限制。同样,根据本发明的技术方案及其较佳实施例的描述,可以做出各种可能的等同改变或替换,而所有这些改变或替换都应属于本发明权利要求的保护范围。
Claims (8)
1.一种检测内存访问越界的方法,在应用程序使用从内存池中申请的内存块的过程中,检测是否存在内存写入越界的情况,其特征在于,包括如下步骤:
(1)创建内存池时,如果初始化一个可用空间大小为Size的内存块,则需要为其分配的全部内存空间为可用空间大小Size加上需要为该内存块添加的前端信息和尾端信息所占空间大小之和,其中,所述尾端信息包括保护字信息、空闲区长度信息;
(2)应用程序申请内存时,如果为其找到一个合适的内存块,则将所述内存块的尾端信息中的保护字设定为保护标记,将空闲区长度设定为内存块大小Size减去用户申请大小的值,如果空闲区长度不为零,则在从所述空闲区起始地址开始,在预设区域填充保护标记;
(3)应用程序释放内存时,检测尾端信息中的保护字是否为设定的保护标记,如果不是,则提示内存访问越界的异常信息;如果保护字是设定的保护标记,则检测空闲区中已填充保护标记的区域,当发现某处不是设定的保护标记时,提示内存访问越界的异常信息。
2.如权利要求1所述的方法,其特征在于,步骤(1)中进一步包括:所述前端信息包括头部信息、申请代码地址信息,所述内存块可用空间在实际使用时分为用户数据区与空闲区;
步骤(2)中进一步包括:所述内存块的前端信息中填写头部信息,并将申请代码地址设定为所获得的调用申请内存接口的代码地址;
步骤(3)中进一步包括:所述提示内存访问越界的异常信息中包括申请代码地址信息。
3.如权利要求2所述的方法,其特征在于,所述步骤(2)中,如果应用程序只有一个代码段,则在申请代码地址信息中只需记录偏移地址。
4.如权利要求2所述的方法,其特征在于,所述步骤(2)中,如果应用程序包含多个代码段,则在申请代码地址信息中进一步记录代码的段地址。
5.如权利要求1所述的方法,其特征在于,所述步骤(2)中,尾端信息中的保护字设定的保护标记为特殊的不常见的数值。
6.如权利要求1所述的方法,其特征在于,所述步骤(2)中,在空闲区中填充的保护标记为特殊的不常见的数值。
7.如权利要求1所述的方法,其特征在于,所述步骤(2)中,在空闲区中填充保护标记的预定区域的长度,根据实际需要和策略确定。
8.如权利要求2所述的方法,其特征在于,步骤(2)所述调用申请内存接口的代码地址,通过一个接口函数获得,该接口函数当在某个函数FuncA中调用时,其返回值为调用FuncA的代码的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101032630A CN100487658C (zh) | 2006-07-20 | 2006-07-20 | 一种检测内存访问越界的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101032630A CN100487658C (zh) | 2006-07-20 | 2006-07-20 | 一种检测内存访问越界的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101110042A true CN101110042A (zh) | 2008-01-23 |
CN100487658C CN100487658C (zh) | 2009-05-13 |
Family
ID=39042123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101032630A Active CN100487658C (zh) | 2006-07-20 | 2006-07-20 | 一种检测内存访问越界的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100487658C (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214147A (zh) * | 2011-06-29 | 2011-10-12 | 深圳市五巨科技有限公司 | 一种检测内存访问越界的方法及装置 |
CN102541748A (zh) * | 2011-12-28 | 2012-07-04 | 青岛海信宽带多媒体技术有限公司 | 一种内存保护方法 |
CN102789407A (zh) * | 2012-06-18 | 2012-11-21 | 上海斐讯数据通信技术有限公司 | 内存块有效性检测方法 |
CN101630276B (zh) * | 2009-08-18 | 2012-12-19 | 深圳市融创天下科技股份有限公司 | 一种高效的内存访问方法 |
CN102866951A (zh) * | 2012-09-21 | 2013-01-09 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
CN103914356A (zh) * | 2014-03-12 | 2014-07-09 | 汉柏科技有限公司 | 内存改写的定位方法 |
CN104461880A (zh) * | 2014-12-04 | 2015-03-25 | 福建星网视易信息系统有限公司 | 一种嵌入式系统中自动检测内存越界的方法及系统 |
CN104657275A (zh) * | 2015-03-09 | 2015-05-27 | 浪潮软件集团有限公司 | 一种内存越界的定位方法及装置 |
CN105183542A (zh) * | 2015-08-13 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
WO2016123908A1 (zh) * | 2015-02-06 | 2016-08-11 | 中兴通讯股份有限公司 | 一种内存越界的检测方法及装置 |
WO2016173172A1 (zh) * | 2015-04-29 | 2016-11-03 | 中兴通讯股份有限公司 | 堆内存操作的检测方法及装置 |
CN106682492A (zh) * | 2015-11-06 | 2017-05-17 | 大唐移动通信设备有限公司 | 一种内存越界的管理方法及装置 |
CN107797864A (zh) * | 2017-10-19 | 2018-03-13 | 浪潮金融信息技术有限公司 | 进程资源方法及装置、计算机可读存储介质、终端 |
CN110032529A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
CN110413521A (zh) * | 2019-07-24 | 2019-11-05 | 杭州迪普信息技术有限公司 | 一种堆内存的写越界检测方法和装置 |
CN110569037A (zh) * | 2019-09-06 | 2019-12-13 | 北京小米移动软件有限公司 | 数据写入的方法和装置 |
CN111061614A (zh) * | 2019-12-23 | 2020-04-24 | 无锡中感微电子股份有限公司 | 一种内存实时监控处理方法和系统 |
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN115509741A (zh) * | 2022-09-06 | 2022-12-23 | 成都赛力斯科技有限公司 | 一种内存管理系统、越界检测方法及存储介质 |
CN118550755A (zh) * | 2024-07-26 | 2024-08-27 | 浙江大华技术股份有限公司 | 一种堆内存越界定位方法、装置、设备及介质 |
CN118550755B (zh) * | 2024-07-26 | 2024-10-22 | 浙江大华技术股份有限公司 | 一种堆内存越界定位方法、装置、设备及介质 |
-
2006
- 2006-07-20 CN CNB2006101032630A patent/CN100487658C/zh active Active
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630276B (zh) * | 2009-08-18 | 2012-12-19 | 深圳市融创天下科技股份有限公司 | 一种高效的内存访问方法 |
CN102214147A (zh) * | 2011-06-29 | 2011-10-12 | 深圳市五巨科技有限公司 | 一种检测内存访问越界的方法及装置 |
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 | 上海斐讯数据通信技术有限公司 | 内存块有效性检测方法 |
CN102866951A (zh) * | 2012-09-21 | 2013-01-09 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
CN102866951B (zh) * | 2012-09-21 | 2015-07-15 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
CN103914356A (zh) * | 2014-03-12 | 2014-07-09 | 汉柏科技有限公司 | 内存改写的定位方法 |
CN104461880A (zh) * | 2014-12-04 | 2015-03-25 | 福建星网视易信息系统有限公司 | 一种嵌入式系统中自动检测内存越界的方法及系统 |
WO2016123908A1 (zh) * | 2015-02-06 | 2016-08-11 | 中兴通讯股份有限公司 | 一种内存越界的检测方法及装置 |
CN105988921A (zh) * | 2015-02-06 | 2016-10-05 | 中兴通讯股份有限公司 | 一种内存越界的检测方法及装置 |
CN104657275A (zh) * | 2015-03-09 | 2015-05-27 | 浪潮软件集团有限公司 | 一种内存越界的定位方法及装置 |
WO2016173172A1 (zh) * | 2015-04-29 | 2016-11-03 | 中兴通讯股份有限公司 | 堆内存操作的检测方法及装置 |
CN106201851A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 堆内存操作的检测方法及装置 |
CN105183542A (zh) * | 2015-08-13 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
CN105183542B (zh) * | 2015-08-13 | 2019-07-12 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
CN106682492A (zh) * | 2015-11-06 | 2017-05-17 | 大唐移动通信设备有限公司 | 一种内存越界的管理方法及装置 |
CN106682492B (zh) * | 2015-11-06 | 2019-08-16 | 大唐移动通信设备有限公司 | 一种内存越界的管理方法及装置 |
CN107797864A (zh) * | 2017-10-19 | 2018-03-13 | 浪潮金融信息技术有限公司 | 进程资源方法及装置、计算机可读存储介质、终端 |
CN110032529B (zh) * | 2018-01-11 | 2021-11-09 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
CN110032529A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种内存管理方法及相关装置 |
CN110413521B (zh) * | 2019-07-24 | 2023-01-24 | 杭州迪普信息技术有限公司 | 一种堆内存的写越界检测方法和装置 |
CN110413521A (zh) * | 2019-07-24 | 2019-11-05 | 杭州迪普信息技术有限公司 | 一种堆内存的写越界检测方法和装置 |
CN110569037A (zh) * | 2019-09-06 | 2019-12-13 | 北京小米移动软件有限公司 | 数据写入的方法和装置 |
CN110569037B (zh) * | 2019-09-06 | 2023-03-31 | 北京小米移动软件有限公司 | 数据写入的方法和装置 |
CN111061614A (zh) * | 2019-12-23 | 2020-04-24 | 无锡中感微电子股份有限公司 | 一种内存实时监控处理方法和系统 |
CN111061614B (zh) * | 2019-12-23 | 2023-07-04 | 无锡中感微电子股份有限公司 | 一种内存实时监控处理方法和系统 |
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN111124921B (zh) * | 2019-12-25 | 2023-09-26 | 抖音视界有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN115509741A (zh) * | 2022-09-06 | 2022-12-23 | 成都赛力斯科技有限公司 | 一种内存管理系统、越界检测方法及存储介质 |
CN118550755A (zh) * | 2024-07-26 | 2024-08-27 | 浙江大华技术股份有限公司 | 一种堆内存越界定位方法、装置、设备及介质 |
CN118550755B (zh) * | 2024-07-26 | 2024-10-22 | 浙江大华技术股份有限公司 | 一种堆内存越界定位方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100487658C (zh) | 2009-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487658C (zh) | 一种检测内存访问越界的方法 | |
US7000225B2 (en) | Method for inserting global breakpoints | |
CN106919454B (zh) | 基于lte协议栈的内存池问题定位方法及其系统 | |
US7769964B2 (en) | Technique to perform memory reference filtering | |
CN103064784B (zh) | 面向Xen环境的运行时内存泄漏检测方法及其实现系统 | |
US20080046673A1 (en) | Method and system to optimize java virtual machine performance | |
US20120005445A1 (en) | Memory allocation with identification of requesting loadable kernel module | |
US7809918B1 (en) | Method, apparatus, and computer-readable medium for providing physical memory management functions | |
US8650537B2 (en) | Optimizing an object-oriented program by transforming invocations of synthetic accessor methods | |
CN1996258A (zh) | 一种动态内存池的实现方法 | |
CN101561775A (zh) | 内存监控方法和装置 | |
CN100392606C (zh) | 一种定位虚拟操作系统内存泄漏的方法 | |
US7565645B2 (en) | Method and apparatus for marking code for data versioning | |
WO2024119775A1 (zh) | 一种raid卡的节点更新方法、系统及相关装置 | |
CN101251822A (zh) | 一种内存被改写的监控方法 | |
US8700864B2 (en) | Self-disabling working set cache | |
CN110287695B (zh) | 一种Java卡及其临时对象的管理方法 | |
CN115617504A (zh) | 一种内存管理系统、泄露检测方法及存储介质 | |
US8990532B2 (en) | Method of managing memory in computer system, computer system and memory managing program | |
US20070067358A1 (en) | Method and apparatus for restoring versionable objects | |
US11055202B1 (en) | Compilation scheme for tagged global variables | |
CN111737357B (zh) | 一种智能合约污点追踪方法及装置 | |
CN102156631B (zh) | 程序设计语言中管理指针的方法及系统 | |
US20070016628A1 (en) | Classification system for versionable objects | |
CN100363905C (zh) | 一种基于绝对座标体系的操作系统客体重用测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |