CN104657275A - 一种内存越界的定位方法及装置 - Google Patents
一种内存越界的定位方法及装置 Download PDFInfo
- Publication number
- CN104657275A CN104657275A CN201510102470.3A CN201510102470A CN104657275A CN 104657275 A CN104657275 A CN 104657275A CN 201510102470 A CN201510102470 A CN 201510102470A CN 104657275 A CN104657275 A CN 104657275A
- Authority
- CN
- China
- Prior art keywords
- memory
- overwriting
- valid
- internal memory
- border
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 345
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000001514 detection method Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 26
- 230000004807 localization Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 11
- 230000001681 protective effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种内存越界的定位方法及装置,该方法包括:预先设置用于检测内存越界的检测接口;在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;当发生错误时,调用所述检测接口;通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;确定所述越界内存对应的代码。通过本发明提供的一种内存越界的定位方法及装置,能够提高内存越界定位的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种内存越界的定位方法及装置。
背景技术
现在嵌入式linux设备的应用场景越来越多,相关的软件开发的规模也越来越大,对调试软件bug的时间和难度要求也越来越高,其中,内存越界就是一个调试难度很大,也非常耗费时间,却很容易出现的bug。
现有技术中,常用的定位方法只能定位最后发生问题的代码位置,但内存越界是对越界后内存的污染,当时不会发生错误,事后使用被污染的内存时,才会触发错误,所以常见的调试方法,只能定位到使用被污染内存的代码,但无法定位到元凶内存越界的代码。内存越界可能是数据段的内存、栈或者堆,其中堆内存越界是最常见,也最难定位的,因为堆内存是使用最多且全局都可以访问的。所以内存越界常见的解决方法是依靠业务经验和测试来不断缩小范围,或者移植到其他功能更强大的系统上,依靠强大的硬件和工具来定位,但往往环境改变或模拟业务很难再复现问题。
通过上述描述可见,对于内存越界的定位需要根据经验和测试不断缩小范围,或移植到其他功能更强大的系统上进行定位,总之,现有技术中需要花费大量时间和资源来进行定位,定位效率较低。
发明内容
有鉴于此,本发明提供了一种内存越界的定位方法及装置,能够提高内存越界定位的效率。
本发明提供了一种内存越界的定位方法,包括:预先设置用于检测内存越界的检测接口,还包括:
S1:在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
S2:当发生错误时,调用所述检测接口;
S3:通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
S4:确定所述越界内存对应的代码。
进一步地,所述S3,包括:
通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,如果是,则判定当前有效内存发生内存越界,否则,判定当前有效内存没有发生内存越界。
进一步地,还包括:
在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述S4,包括:
获取所述越界内存对应的堆栈信息;
根据所述堆栈信息确定所述越界内存在代码中创建的位置。
进一步地,所述根据所述堆栈信息确定所述越界内存在代码中创建的位置,包括:
根据所述堆栈信息获取函数调用关系;
根据所述函数调用关系确定所述越界内存在代码中创建的位置。
进一步地,在所述S1之前,还包括:
A1:判断当前空闲的内存的大小是否小于等于第二预设值,如果是,则执行S1,否则执行B1;
B1:在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存;
B2:检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界;
B3:根据所述PageHeap确定发生内存越界的有效内存对应的代码。
另一方面,本发明提供了一种内存越界的定位装置,包括:
设置单元,用于设置用于检测内存越界的检测接口;
增加单元,用于在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
调用单元,用于当发生错误时,调用所述检测接口;
第一确定单元,用于通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
第二确定单元,确定所述越界内存对应的代码。
进一步地,所述第一确定单元,用于通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,当检测结果为是时,则判定当前有效内存发生内存越界,当检测结果为否时,则判定当前有效内存没有发生内存越界。
进一步地,还包括:
记录单元,用于在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述第二确定单元,包括:
获取子单元,用于获取所述越界内存对应的堆栈信息;
确定子单元,用于根据所述堆栈信息确定所述越界内存在代码中创建的位置。
进一步地,所述确定子单元,包括:
调用关系获取单元,用于根据所述堆栈信息获取函数调用关系;
位置确定单元,用于根据所述函数调用关系确定所述越界内存在代码中创建的位置。
进一步地,还包括:
判断装置,用于判断当前空闲的内存的大小是否小于等于第二预设值,当判断结果为是时,通知所述增加单元,当判断结果为否时,通知创建单元;
创建单元,用于在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存;
内存越界检测单元,用于检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界;
代码确定单元,用于根据所述PageHeap确定发生内存越界的有效内存对应的代码。
本发明提供的一种内存越界的定位方法及装置,在有效内存两端增加保护内存,通过预先设置的检测接口检测保护内存是否被内存越界污染来定位越界内存,然后根据越界内存确定对应的代码,该方法无需反复测试,节省时间,也无需在其他系统上进行定位,节省资源,提高了内存越界定位的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种内存越界的定位方法流程图;
图2是本发明一实施例提供的另一种内存越界的定位方法流程图;
图3是本发明一实施例提供的一种内存越界的定位装置的示意图;
图4是本发明一实施例提供的另一种内存越界的定位装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种内存越界的定位方法,该方法可以包括以下步骤:
S0:预先设置用于检测内存越界的检测接口;
S1:在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
S2:当发生错误时,调用所述检测接口;
S3:通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
S4:确定所述越界内存对应的代码。
本发明实施例提供的一种内存越界的定位方法,在有效内存两端增加保护内存,通过预先设置的检测接口检测保护内存是否被内存越界污染来定位越界内存,然后根据越界内存确定对应的代码,该方法无需反复测试,节省时间,也无需在其他系统上进行定位,节省资源,提高了内存越界定位的效率。
当程序运行出现错误时,系统会通过信号处理函数来处理,为了方便,可以直接通过信号处理函数调用检测接口。所述S2,包括:
当发生错误时,通过信号处理函数调用所述检测接口。
针对一个有效内存,可以通过以下方法来判断其是否发生内存越界。所述S3,包括:
通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,如果是,则判定当前有效内存发生内存越界,否则,判定当前有效内存没有发生内存越界。
确定了发生内存越界的有效内存后,需要确定其对应的代码,这样才能对代码进行修改,解决内存越界的问题。一个有效内存被创建时,会产生堆栈信息来记录有效内存被创建的过程,通过堆栈信息能够确定对应的代码。但是,在确定对应的代码时,只需要最近的几条堆栈信息即可。该方法还包括:在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述S4,包括:
获取所述越界内存对应的堆栈信息;
根据所述堆栈信息确定所述越界内存在代码中创建的位置。
在堆栈信息中包括创建对应的有效内存时的函数调用关系,通过函数调用关系即可确定有效内存在代码中创建的位置。
在该实现方式中,所述根据所述堆栈信息确定所述越界内存在代码中创建的位置,包括:
根据所述堆栈信息获取函数调用关系;
根据所述函数调用关系确定所述越界内存在代码中创建的位置。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明实施例提供了一种内存越界的定位方法,该方法可以包括以下步骤:
步骤201:预先设置用于检测内存越界的检测接口。
步骤202:判断当前空闲的内存的大小是否小于等于第二预设值,如果是,则执行步骤203,否则执行步骤210;
由于系统的内存有限,为了避免资源浪费,可以根据当前空闲的内存的大小选择合适的定位方法。
步骤203:在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息。
每个有效内存在创建时可能会产生很多条堆栈信息,在堆栈中只需记录其中的几条即可。在堆栈中记录的堆栈信息是最新的,举例来说,第一预设值可以是5条,每个有效内存在堆栈中只记录5条最新的堆栈信息。
步骤204:在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存。
有效内存为被检测的运行程序申请的内存,保护内存为在有效内存两端增加的相邻的内存。
步骤205:当发生错误时,通过信号处理函数调用所述检测接口。
在发生内存越界后,程序运行过程中会发生错误,在发生错误时通过检测接口来检测是否是发生了内存越界。
步骤206:通过所述检测接口检测每个有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,如果是,则判定当前有效内存发生内存越界,确定当前有效内存为越界内存,否则,判定当前有效内存没有发生内存越界。
当同时满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染时,判定当前有效内存发生内存越界;当两端的保护内存都被内存越界污染时,或当前端的保护内存被内存越界污染时,判定当前有效内存被内存越界污染;当两端的保护内存都没有被内存越界污染时,判断当前有效内存没有被内存越界污染。
步骤207:获取所述越界内存对应的堆栈信息。
举例来说,该步骤可以通过以下方式实现:
获取CPU寄存器内容中的栈底指针和栈顶指针;
根据所述栈底指针和所述栈顶指针遍历堆栈,获取所述堆栈中所述越界内存对应的堆栈信息。
步骤208:根据所述堆栈信息获取函数调用关系。
获取的函数调用函数可以通过信号处理函数记录在日志,方便用户处理。
步骤209:根据所述函数调用关系确定所述越界内存在代码中创建的位置。
步骤210:在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存。
举例来说,在嵌入式linux系统中,创建PageHeap可以通过以下方式实现:
在Tcmalloc基础上,实现PageHeap,并移植到嵌入式linux。
其中,移植tcmalloc时,将CPU字节对齐;还可以通过修改/proc/sys/vm/max_map_count,设置创建PageHeap的数量。
通过该步骤的实现方式,一旦内存越界,就会触发内存越界的信号,可以被常见的linux信号堆栈调试系统捕获。
步骤211:检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界。
步骤212:根据所述PageHeap确定发生内存越界的有效内存对应的代码。
另外,为了优化性能,在释放PageHeap时,并不真正释放,而是通过cache缓存起来,通过这种cache机制,可以有效的降低系统调用的频率,优化效率,降低对CPU资源的消耗。在cache中使用锁时,可以使用linux源码中的spinlock,不能使用常见的Pthread锁,因为malloc堆内存申请太基础了,Pthread本身就依赖malloc。
通过本实施例提供的方法确定出越界内存对应的代码后,用户可以根据确定出的在代码中的位置对代码进行修改,避免发生内存越界。
如图3、图4所示,本发明实施例提供了一种内存越界的定位装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种内存越界的定位装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种内存越界的定位装置,包括:
设置单元401,用于设置用于检测内存越界的检测接口;
增加单元402,用于在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
调用单元403,用于当发生错误时,调用所述检测接口;
第一确定单元404,用于通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
第二确定单元405,确定所述越界内存对应的代码。
在一种可能的实现方式中,所述调用单元403,用于当发生错误时,通过信号处理函数调用所述检测接口。
在一种可能的实现方式中,所述第一确定单元404,用于通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,当检测结果为是时,则判定当前有效内存发生内存越界,当检测结果为否时,则判定当前有效内存没有发生内存越界。
在一种可能的实现方式中,该装置还包括:
记录单元,用于在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述第二确定单元405,包括:
获取子单元,用于获取所述越界内存对应的堆栈信息;
确定子单元,用于根据所述堆栈信息确定所述越界内存在代码中创建的位置。
在该实现方式中,所述确定子单元,包括:
调用关系获取单元,用于根据所述堆栈信息获取函数调用关系;
位置确定单元,用于根据所述函数调用关系确定所述越界内存在代码中创建的位置。
该装置,还包括:
判断装置,用于判断当前空闲的内存的大小是否小于等于第二预设值,当判断结果为是时,通知所述增加单元,当判断结果为否时,通知创建单元;
创建单元,用于在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存;
内存越界检测单元,用于检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界;
代码确定单元,用于根据所述PageHeap确定发生内存越界的有效内存对应的代码。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
另外,本发明实施例提供的方法及装置适用于嵌入式Linux系统。
本发明实施例提供的一种内存越界的定位方法及装置,具有如下有益效果:
本发明实施例提供的一种内存越界的定位方法及装置,在有效内存两端增加保护内存,通过预先设置的检测接口检测保护内存是否被内存越界污染来定位越界内存,然后根据越界内存确定对应的代码,该方法无需反复测试,节省时间,也无需在其他系统上进行定位,节省资源,提高了内存越界定位的效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种内存越界的定位方法,其特征在于,包括:预先设置用于检测内存越界的检测接口,还包括:
S1:在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
S2:当发生错误时,调用所述检测接口;
S3:通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
S4:确定所述越界内存对应的代码。
2.根据权利要求1所述的方法,其特征在于,所述S3,包括:
通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,如果是,则判定当前有效内存发生内存越界,否则,判定当前有效内存没有发生内存越界。
3.根据权利要求1-2任一所述的方法,其特征在于,还包括:
在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述S4,包括:
获取所述越界内存对应的堆栈信息;
根据所述堆栈信息确定所述越界内存在代码中创建的位置。
4.根据权利要求3所述的方法,其特征在于,所述根据所述堆栈信息确定所述越界内存在代码中创建的位置,包括:
根据所述堆栈信息获取函数调用关系;
根据所述函数调用关系确定所述越界内存在代码中创建的位置。
5.根据权利要求1所述的方法,其特征在于,在所述S1之前,还包括:
A1:判断当前空闲的内存的大小是否小于等于第二预设值,如果是,则执行S1,否则执行B1;
B1:在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存;
B2:检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界;
B3:根据所述PageHeap确定发生内存越界的有效内存对应的代码。
6.一种内存越界的定位装置,其特征在于,包括:
设置单元,用于设置用于检测内存越界的检测接口;
增加单元,用于在被申请的有效内存的两端分别增加与所述有效内存相邻的保护内存;
调用单元,用于当发生错误时,调用所述检测接口;
第一确定单元,用于通过所述检测接口检测每个有效内存的保护内存是否被内存越界污染,确定所有有效内存中发生内存越界的越界内存;
第二确定单元,确定所述越界内存对应的代码。
7.根据权利要求6所述的装置,其特征在于,所述第一确定单元,用于通过所述检测接口检测当前有效内存的保护内存是否满足:后端的保护内存被内存越界污染,且前端的内存没有被内存越界污染,当检测结果为是时,则判定当前有效内存发生内存越界,当检测结果为否时,则判定当前有效内存没有发生内存越界。
8.根据权利要求6-7任一所述的装置,其特征在于,还包括:
记录单元,用于在堆栈中记录每个有效内存在创建时的第一预设值条堆栈信息;
所述第二确定单元,包括:
获取子单元,用于获取所述越界内存对应的堆栈信息;
确定子单元,用于根据所述堆栈信息确定所述越界内存在代码中创建的位置。
9.根据权利要求8所述的装置,其特征在于,所述确定子单元,包括:
调用关系获取单元,用于根据所述堆栈信息获取函数调用关系;
位置确定单元,用于根据所述函数调用关系确定所述越界内存在代码中创建的位置。
10.根据权利要求6所述的装置,其特征在于,还包括:
判断装置,用于判断当前空闲的内存的大小是否小于等于第二预设值,当判断结果为是时,通知所述增加单元,当判断结果为否时,通知创建单元;
创建单元,用于在有效内存被申请时,创建所述PageHeap,将所述有效内存的结尾放在所述PageHeap页的边缘,在所述有效内存后分配与所述有效内存相邻的不能写的内存;
内存越界检测单元,用于检测内存越界的信号,当检测到内存越界的信号时,判定当前有效内存发生内存越界;
代码确定单元,用于根据所述PageHeap确定发生内存越界的有效内存对应的代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510102470.3A CN104657275A (zh) | 2015-03-09 | 2015-03-09 | 一种内存越界的定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510102470.3A CN104657275A (zh) | 2015-03-09 | 2015-03-09 | 一种内存越界的定位方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104657275A true CN104657275A (zh) | 2015-05-27 |
Family
ID=53248442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510102470.3A Pending CN104657275A (zh) | 2015-03-09 | 2015-03-09 | 一种内存越界的定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657275A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN111858368A (zh) * | 2020-07-27 | 2020-10-30 | 成都新潮传媒集团有限公司 | 数据处理方法、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
US5999272A (en) * | 1998-10-20 | 1999-12-07 | Hewlett-Packard Company | Balancing compressed storage requirements with decompression times during punt protection processing in a page printer |
CN1673979A (zh) * | 2004-03-24 | 2005-09-28 | 华为技术有限公司 | 一种内存分配方法 |
CN101110042A (zh) * | 2006-07-20 | 2008-01-23 | 中兴通讯股份有限公司 | 一种检测内存访问越界的方法 |
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式系统内存写越界的检测方法及系统 |
CN101520754A (zh) * | 2009-03-24 | 2009-09-02 | 中兴通讯股份有限公司 | 内存越界访问的定位方法及装置 |
CN101625659A (zh) * | 2009-07-03 | 2010-01-13 | 无敌科技(西安)有限公司 | 嵌入式系统实时监控内存的方法 |
CN102214147A (zh) * | 2011-06-29 | 2011-10-12 | 深圳市五巨科技有限公司 | 一种检测内存访问越界的方法及装置 |
-
2015
- 2015-03-09 CN CN201510102470.3A patent/CN104657275A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
US5999272A (en) * | 1998-10-20 | 1999-12-07 | Hewlett-Packard Company | Balancing compressed storage requirements with decompression times during punt protection processing in a page printer |
CN1673979A (zh) * | 2004-03-24 | 2005-09-28 | 华为技术有限公司 | 一种内存分配方法 |
CN101110042A (zh) * | 2006-07-20 | 2008-01-23 | 中兴通讯股份有限公司 | 一种检测内存访问越界的方法 |
CN101145129A (zh) * | 2007-07-18 | 2008-03-19 | 中兴通讯股份有限公司 | 一种嵌入式系统内存写越界的检测方法及系统 |
CN101520754A (zh) * | 2009-03-24 | 2009-09-02 | 中兴通讯股份有限公司 | 内存越界访问的定位方法及装置 |
CN101625659A (zh) * | 2009-07-03 | 2010-01-13 | 无敌科技(西安)有限公司 | 嵌入式系统实时监控内存的方法 |
CN102214147A (zh) * | 2011-06-29 | 2011-10-12 | 深圳市五巨科技有限公司 | 一种检测内存访问越界的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124921A (zh) * | 2019-12-25 | 2020-05-08 | 北京字节跳动网络技术有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN111124921B (zh) * | 2019-12-25 | 2023-09-26 | 抖音视界有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN111858368A (zh) * | 2020-07-27 | 2020-10-30 | 成都新潮传媒集团有限公司 | 数据处理方法、装置及存储介质 |
CN111858368B (zh) * | 2020-07-27 | 2022-11-25 | 成都新潮传媒集团有限公司 | 数据处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6223338B1 (en) | Method and system for software instruction level tracing in a data processing system | |
US6883162B2 (en) | Annotations for transaction tracing | |
US7000225B2 (en) | Method for inserting global breakpoints | |
US8185724B2 (en) | Monitoring values of signals within an integrated circuit | |
US20130339829A1 (en) | Machine Check Summary Register | |
US8037363B2 (en) | Generation of trace elements within a data processing apparatus | |
KR20100108816A (ko) | 프로그램의 동적 분석 방법 및 그 장치 | |
US7788543B2 (en) | Methods and systems for generating and storing computer program execution trace data | |
CN110741354A (zh) | 呈现代码实体调用之间的差异 | |
CN110168508B (zh) | 监测断点出现的存储器位置的方法、计算机系统和介质 | |
CN117112134A (zh) | 虚拟机运行跟踪 | |
US9176821B2 (en) | Watchpoint support system for functional simulator | |
CN110955598A (zh) | 一种内核态程序的断点处理方法及装置 | |
CN101520754A (zh) | 内存越界访问的定位方法及装置 | |
CN104657275A (zh) | 一种内存越界的定位方法及装置 | |
CN105095079B (zh) | 一种热点模块指令跟踪的方法及设备 | |
CN101237350B (zh) | 用于多任务环境单板机的全局变量异常改写定位方法 | |
US11030075B2 (en) | Efficient register breakpoints | |
CN106095631B (zh) | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 | |
LU102709B1 (en) | Memory address compression within an execution trace | |
CN101650688B (zh) | 一种访问vm_io地址空间的方法和用户态调试器 | |
US11442842B2 (en) | Exposing memory-backed objects as queryable memory resources | |
CN115485668A (zh) | 存储器页标记作为基于处理器的执行跟踪的日志记录线索 | |
US11048617B2 (en) | Method of accessing metadata when debugging a program to be executed on processing circuitry | |
US11960406B2 (en) | Omitting processor-based logging of separately obtainable memory values during program tracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150527 |
|
WD01 | Invention patent application deemed withdrawn after publication |