CN104461880B - 一种嵌入式系统中自动检测内存越界的方法及系统 - Google Patents
一种嵌入式系统中自动检测内存越界的方法及系统 Download PDFInfo
- Publication number
- CN104461880B CN104461880B CN201410727543.3A CN201410727543A CN104461880B CN 104461880 B CN104461880 B CN 104461880B CN 201410727543 A CN201410727543 A CN 201410727543A CN 104461880 B CN104461880 B CN 104461880B
- Authority
- CN
- China
- Prior art keywords
- detection
- memory
- executable program
- overwriting
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 159
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000006870 function Effects 0.000 claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 51
- 238000005192 partition Methods 0.000 claims abstract description 27
- 238000012360 testing method Methods 0.000 claims abstract description 15
- 238000013507 mapping Methods 0.000 claims description 37
- 239000003550 marker Substances 0.000 claims description 15
- 238000012367 process mapping Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 230000007812 deficiency Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种嵌入式系统中自动检测内存越界的方法,包括:编译过程:对需要加入嵌入式系统中的应用进行编译;交换分区过程:在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;检测过程:在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测。本发明使得越界检测工具能适合所有嵌入式系统,解决一些嵌入式系统无可用越界检测工具和越界检测工具在嵌入式系统中出现内存空间不足的问题,且内存越界定位精准,误报率非常低。
Description
技术领域
本发明涉及计算机领域,更具体地说,涉及一种用于嵌入式领域排查内存越界的检测方法和系统。
背景技术
嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。它具有系统内核小、专用性强、系统精简等特点。但是它也是一个资源受限的系统,与PC系统相比,它的内存空间较少、而且可靠性要求高。
内存越界(Heap Corruption),就是指当内存输入超出了预分配的空间大小,就会覆盖该空间之后的一段存储区域,导致系统异常。嵌入式领域广泛使用C/C++进行开发,不当的内存操作或者多线程,都可能导致内存越界问题。在嵌入式系统上排查越界问题,目前主要有三种方法,第一种是通过阅读源代码来反复查找,排查速度较慢;第二种方法是通过分析核心内存转储来找,但是必须要掌握反汇编语言和内存分配技术两个难点;第三种是利用越界检测工具,它可以准确定位,但是现有的工具通常是针对X86和ARM平台架构,而其他平台架构(如alpha,hppa,mips,ia64等)的越界检测工具则相对匮乏。虽然Valgrind工具支持平台较多,但在平台存在专有驱动的情况下,它的可用性相对较差,无法实现在目标平台架构上的使用。并且,越界检测工具的内存占用比正常程序通常要大,在嵌入式系统中应用较容易出现内存空间不足的情况。
发明内容
本发明要解决的技术问题之一,在于提供一种嵌入式系统中自动检测内存越界的方法,以解决现有技术中除X86和ARM平台架构外,一些嵌入式系统无可用越界检测工具和越界检测工具在嵌入式系统中出现内存空间不足的问题。
本发明要解决的技术问题之一是这样实现的:一种嵌入式系统中自动检测内存越界的方法,其特征在于:所述方法包括编译过程、交换分区过程和检测过程:
所述编译过程:对需要加入嵌入式系统中的应用进行编译,具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区过程:在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;
所述检测过程:在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测。
较佳的,所述编译过程中的步骤11具体如下:
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断所述可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记。
较佳的,所述交换分区位于U盘、移动硬盘或网络文件系统中。
较佳的,所述检测过程中判断是否出现内存越界的步骤具体如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存;
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
较佳的,所述检测过程还包括,当判定内存越界时,将自动打印日志并直接让所述可执行程序退出,以便准确定位内存越界位置和保留所述可执行程序运行时的栈信息和调试信息,从而在服务器上分析出现内存越界的原因。
本发明要解决的技术问题之二,在于提供一种嵌入式系统中自动检测内存越界的系统,以解决现有技术中除X86和ARM平台架构外,一些嵌入式系统无可用越界检测工具和越界检测工具在嵌入式系统中出现内存空间不足的问题。
本发明要解决的技术问题之二是这样实现的:一种嵌入式系统中自动检测内存越界的系统,其特征在于:所述系统包括编译模块、交换分区模块和检测模块:
所述编译模块:用于对需要加入嵌入式系统中的应用进行编译,具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区模块:用于在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;
所述检测模块:用于在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测。
较佳的,所述编译模块包括初始化单元,用于初始化栈变量和替换指针读与写操作,具体过程如下:
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断所述可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记。
较佳的,所述交换分区位于U盘、移动硬盘或网络文件系统中。
较佳的,所述检测模块包括判断单元,用于判断是否出现内存越界,具体过程如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存;
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
较佳的,所述检测模块还包括报警单元,用于当判定内存越界时,将自动打印日志并直接让所述可执行程序退出,以便准确定位内存越界位置和保留所述可执行程序运行时的栈信息和调试信息,从而在服务器上分析出现内存越界的原因。
采用上述方案后,本发明具有如下优点:与现有技术相比,本发明解决了在嵌入式系统排查越界时直接阅读源代码速度慢和分析核心转储需要掌握反汇编和内存分配技术所导致的较难推广问题,同时使得越界检测工具能适合用户所选的目标平台架构,解决一些嵌入式系统无可用越界检测工具的问题;越界定位精准,误报率非常低,同时通过创建交换分区也降低了对嵌入式系统的内存要求,拓宽了使用范畴。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
图2为本发明方法一实施例的工具链编译过程流程图。
图3为本发明方法一实施例的内存越界判断过程执行流程图。
图4为本发明方法另一实施例的内存越界判断执行流程图。
图5为本发明系统的连接示意图。
具体实施方式
请参阅图1,本发明,一种嵌入式系统中自动检测内存越界的方法,包括编译过程、交换分区过程和检测过程:
所述编译过程:是对需要加入嵌入式系统中的应用进行编译(用户可以选择在目标平台架构对需要加入嵌入式系统中的应用进行编译,也可以选择直接在嵌入式系统中进行编译)具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区过程:是在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;避免加入嵌入式系统中的应用占用内存过大而无法进行内存越界检测,降低了对嵌入式系统的内存要求,拓宽了使用范畴;
所述检测过程:是在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测;所述测试时长由用户设定。
通过上述编译、交换分区和检测过程,使得越界检测工具能适合所有的嵌入式系统,解决一些嵌入式系统无可用越界检测工具的问题和越界检测工具在嵌入式系统中出现内存空间不足的问题。
如图2所示,所述编译过程中的步骤11具体如下:
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断所述可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记。
所述交换分区位于U盘、移动硬盘或网络文件系统中。
如图3所示,所述检测过程中判断是否出现内存越界可以采用栈越界检测方法,具体步骤如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存(所述映射内存可使用mmap函数调用保留1/8的用户空间内存用作映射内存);例如,在一嵌入式系统中,低2GB地址为用户空间,高2GB地址为内核空间,则mmap函数调用256MB用户空间内存作为映射内存;
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;例如,可以替换头文件函数、输出函数、线程创建和销毁函数;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
所述检测过程还包括,当判定内存越界时,将自动打印日志并直接让所述可执行程序退出,以便准确定位内存越界位置和保留所述可执行程序运行时的栈信息和调试信息,从而在服务器上分析出现内存越界的原因,这样越界定位精准,误报率非常低。
如图4所示,所述检测过程中判断是否出现内存越界还可以采用堆越界检测方法:
本方法与栈越界检测方法大致相同,其不同之处在于,系统库函数替换为所述检测函数后,是分配堆内存并在映射内存上标记堆变量的起始位置和结束位置,所述分配堆内存是在堆变量本身大小的基础上前后各保留32个字节的空间,而结束检测时是释放内存清除堆变量的映射内存标记。其中,被替换的库函数中必须包括内存分配函数。
基于以上方法,如图5所示,本发明的一种嵌入式系统中自动检测内存越界的系统,包括编译模块、交换分区模块和检测模块:
所述编译模块:用于对需要加入嵌入式系统中的应用进行编译(用户可以选择在目标平台架构对需要加入嵌入式系统中的应用进行编译,也可以选择直接在嵌入式系统中进行编译)具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区模块:用于在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;避免加入嵌入式系统中的应用内存占用过大而无法进行内存越界检测,降低了对嵌入式系统的内存要求,拓宽了使用范畴;
所述检测模块:用于在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测;所述测试时长由用户设定。
所述编译模块包括初始化单元,用于初始化栈变量和替换指针读与写操作,具体过程如下:
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断所述可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记。
所述交换分区位于U盘、移动硬盘或网络文件系统中。
所述检测模块包括判断单元,用于判断是否出现内存越界,具体过程如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存(所述映射内存是使用mmap函数调用保留1/8的用户空间内存作为映射内存);
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
所述检测模块还包括报警单元,用于当判定内存越界时,将自动打印日志并直接让所述可执行程序退出,以便准确定位内存越界位置和保留所述可执行程序运行时的栈信息和调试信息,从而在服务器上分析出现内存越界的原因,这样越界定位精准,误报率非常低。
本发明,使得越界检测工具能适合所有嵌入式系统,解决一些嵌入式系统无可用越界检测工具和越界检测工具在嵌入式系统中出现内存空间不足的问题,且内存越界定位精准,误报率非常低;解决了现有技术检测内存越界采用直接阅读源代码速度慢和分析核心转储需要掌握反汇编和内存分配技术所导致的较难推广问题,方便操作和推广。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (8)
1.一种嵌入式系统中自动检测内存越界的方法,其特征在于:所述方法包括编译过程、交换分区过程和检测过程:
所述编译过程:对需要加入嵌入式系统中的应用进行编译,具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区过程:在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;
所述检测过程:在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测。
2.根据权利要求1所述的一种嵌入式系统中自动检测内存越界的方法,其特征在于:所述交换分区位于U盘、移动硬盘或网络文件系统中。
3.根据权利要求1所述的一种嵌入式系统中自动检测内存越界的方法,其特征在于:所述检测过程中判断是否出现内存越界的步骤具体如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存;
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
4.根据权利要求1或3所述的一种嵌入式系统中自动检测内存越界的方法,其特征在于:所述检测过程还包括,当判定内存越界时,将自动打印日志并直接让所述可执行程序退出。
5.一种嵌入式系统中自动检测内存越界的系统,其特征在于:所述系统包括编译模块、交换分区模块和检测模块:
所述编译模块:用于对需要加入嵌入式系统中的应用进行编译,具体过程如下:
步骤10、对越界检测工具进行交叉编译成嵌入式系统的工具链和检测库;
步骤11、通过工具链编译所述应用的应用程序;
所述编译模块包括初始化单元,用于初始化栈变量和替换指针读与写操作,具体过程如下:
步骤111、进入所述应用程序的编译时,先初始化栈变量的映射内存标记,保留栈时也在栈前与栈后各保留32个字节的空间,用于检测过程中在映射内存上标记栈变量的起始位置和结束位置;
步骤112、在所述应用程序中使用具有检测功能的检测函数替换直接的指针读与写操作,便于检测过程中判断可执行程序的指针是否越界;
步骤113、退出所述应用程序的编译时,清空栈变量的映射内存标记;
步骤12、链接检测库和所述应用程序,得到应用的可执行程序;
步骤13、在嵌入式系统中部署检测库和所述可执行程序;
所述交换分区模块:用于在嵌入式系统中创建交换分区,增加嵌入式系统的可用内存;
所述检测模块:用于在嵌入式系统中先加载检测库以自动启用越界检测功能,然后再加载及运行所述可执行程序:若所述可执行程序运行时异常退出,判定出现内存越界;若所述可执行程序正常运行达到测试时长,则判定没有出现内存越界,结束检测。
6.根据权利要求5所述的一种嵌入式系统中自动检测内存越界的系统,其特征在于:所述交换分区位于U盘、移动硬盘或网络文件系统中。
7.根据权利要求5所述的一种嵌入式系统中自动检测内存越界的系统,其特征在于:所述检测模块包括判断单元,用于判断是否出现内存越界,具体过程如下:
步骤20、调试所述可执行程序前先加载检测库,在检测库初始化时保留映射内存;
步骤21、将系统库函数替换为所述检测函数,用于检测所述可执行程序中的函数调用是否越界;
步骤22、进入检测函数时在映射内存上标记栈变量的起始位置和结束位置;
步骤23、先检测指针是否在非法地址上,若是,则判断指针读或者写越界;若否,再检测函数调用是否合法,若不合法,则判定内存越界,若合法,则所述可执行程序正常运行达到所述测试时长后,判定没有出现内存越界,将退出检测函数清除栈变量的映射内存标记。
8.根据权利要求5或7所述的一种嵌入式系统中自动检测内存越界的系统,其特征在于:所述检测模块还包括报警单元,用于当判定内存越界时,将自动打印日志并直接让所述可执行程序退出,以便准确定位内存越界位置和保留所述可执行程序运行时的栈信息和调试信息,从而在服务器上分析出现内存越界的原因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410727543.3A CN104461880B (zh) | 2014-12-04 | 2014-12-04 | 一种嵌入式系统中自动检测内存越界的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410727543.3A CN104461880B (zh) | 2014-12-04 | 2014-12-04 | 一种嵌入式系统中自动检测内存越界的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461880A CN104461880A (zh) | 2015-03-25 |
CN104461880B true CN104461880B (zh) | 2018-01-09 |
Family
ID=52907969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410727543.3A Expired - Fee Related CN104461880B (zh) | 2014-12-04 | 2014-12-04 | 一种嵌入式系统中自动检测内存越界的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461880B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105303115A (zh) * | 2015-10-29 | 2016-02-03 | 成都信息工程大学 | 一种Java卡越界访问漏洞的检测方法和装置 |
CN108875368A (zh) * | 2017-05-10 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种安全检测方法、装置及系统 |
CN108197035A (zh) * | 2018-02-01 | 2018-06-22 | 江南大学 | 一种检测内存边界溢出错误的方法 |
CN111124921B (zh) * | 2019-12-25 | 2023-09-26 | 抖音视界有限公司 | 内存越界的检测方法、装置、设备和存储介质 |
CN117093472A (zh) * | 2023-07-12 | 2023-11-21 | 荣耀终端有限公司 | 一种内存操作的处理方法、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442234C (zh) * | 2005-06-21 | 2008-12-10 | 国际商业机器公司 | 用于嵌入式系统的软件包构建方法和系统 |
CN100487657C (zh) * | 2005-12-08 | 2009-05-13 | 中兴通讯股份有限公司 | 嵌入式系统中自动监测内存泄漏与内存越界的方法 |
CN100487658C (zh) * | 2006-07-20 | 2009-05-13 | 中兴通讯股份有限公司 | 一种检测内存访问越界的方法 |
US9092570B2 (en) * | 2007-07-28 | 2015-07-28 | Sam Michael | Memory management for remote software debuggers and methods |
CN101354675B (zh) * | 2008-08-19 | 2011-01-19 | 华南理工大学 | 一种嵌入式软件动态内存检测的方法 |
CN102866951B (zh) * | 2012-09-21 | 2015-07-15 | 武汉烽火网络有限责任公司 | 嵌入式系统内存越界错误快速定位方法 |
-
2014
- 2014-12-04 CN CN201410727543.3A patent/CN104461880B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104461880A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9727436B2 (en) | Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests | |
CN104461880B (zh) | 一种嵌入式系统中自动检测内存越界的方法及系统 | |
CN111756575B (zh) | 存储服务器的性能分析方法及装置、电子设备 | |
CN106325970A (zh) | 编译方法和编译系统 | |
JP2019537782A (ja) | 垂直統合インストルメント化およびトレース再構成のためのシステム、方法およびデバイス | |
US20090248721A1 (en) | System And Method for Stack Crawl Testing and Caching | |
KR101786156B1 (ko) | 사용자 정의 타입을 위한 컴파일 타임 경계 검사 기법 | |
US8060869B1 (en) | Method and system for detecting memory problems in user programs | |
US8887141B2 (en) | Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information | |
US20120167057A1 (en) | Dynamic instrumentation of software code | |
US9183114B2 (en) | Error detection on the stack | |
Eizenberg et al. | Remix: Online detection and repair of cache contention for the jvm | |
US20110320745A1 (en) | Data-scoped dynamic data race detection | |
CN104407886B (zh) | 一种引导与目标分离的嵌入式软件固化、加载方法 | |
US7543186B2 (en) | System and method for implementing software breakpoints | |
US10649744B1 (en) | Systems and methods for handling renaming of programming constructs in programming environments | |
CN107133144B (zh) | 一种动态监测堆内存使用错误的内存监测装置及方法 | |
Chalupa et al. | Joint forces for memory safety checking | |
US20050120274A1 (en) | Methods and apparatus to minimize debugging and testing time of applications | |
US7409677B1 (en) | Method and system for creation and use of embedded trace description | |
DeLozier et al. | SOFRITAS: Serializable ordering-free regions for increasing thread atomicity scalably | |
CN111183413B (zh) | 用于在计算机中执行程序的方法 | |
Bai et al. | Effective detection of sleep-in-atomic-context bugs in the Linux kernel | |
US10452534B2 (en) | Asynchronous operation query | |
US9182990B1 (en) | Method and apparatus for detecting execution of unsupported instructions while testing multiversioned code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |