CN101763305A - 一种嵌入式***内存泄露的检测方法 - Google Patents
一种嵌入式***内存泄露的检测方法 Download PDFInfo
- Publication number
- CN101763305A CN101763305A CN200910256476A CN200910256476A CN101763305A CN 101763305 A CN101763305 A CN 101763305A CN 200910256476 A CN200910256476 A CN 200910256476A CN 200910256476 A CN200910256476 A CN 200910256476A CN 101763305 A CN101763305 A CN 101763305A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory
- information
- embedded system
- function
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 403
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000006870 function Effects 0.000 claims abstract description 74
- 238000001514 detection method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000007599 discharging Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007630 basic procedure Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009885 systemic effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式***内存泄露的检测方法,包括跟踪内存分配的过程和跟踪内存释放的过程的步骤,以及根据跟踪结果进行内存泄露检测的步骤;所述内存分配的过程包括通过内存分配函数的参数获取该内存分配函数分配的内存所对应的内存释放范围类型信息及内存释放位置信息并进行保存的步骤;所述内存释放的过程包括根据所述的内存释放范围类型信息及内存释放位置信息判断内存是否有效,并在内存有效时释放该内存的步骤。利用本发明所述的内存泄露检测方法,可实现对嵌入式***内存泄露的分区检测,方法使用灵活、检测效率较高。
Description
技术领域
本发明涉及一种内存处理方法,具体地说,是涉及一种对嵌入式***内存泄露进行检测的方法,属于嵌入式***技术领域。
背景技术
对于内存泄露,一般是指堆内存的泄露。堆内存,是指应用程序在运行过程中,利用一些特定的函数从堆中分配的、而在使用完毕后再通过特定的函数予以释放的内存。如果应用程序在使用完堆内存后没有将其释放,则这块内存就不能被再次使用,就认为这块内存泄露了。
根据其发生的方式来分,内存泄露可以分为下述4类:
(1)常发性内存泄露:发生内存泄露的函数代码会被多次执行到,每次被执行的时候都会导致一块内存泄露。
(2)偶发性内存泄露:发生内存泄露的函数代码只有在某些特定环境或操作过程下才会发生。
常发性和偶发性是相对的,对于特定的环境,偶发性也许就会变成常发性。
(3)一次性内存泄露:发生内存泄露的函数代码只会被执行一次;或者由于算法上的缺陷,导致总会有一块且仅有一块内存发生泄露。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄露只会发生一次。
(4)隐式内存泄露:程序在运行过程中不停地分配内存,但是直到结束的时候才释放内存。严格地说,此时并没有发生内存泄露,因为最终程序释放了所有申请的内存。但是对于一个服务器程序来说,需要运行几天、几周甚至几个月,若不及时释放内存,也可能导致最终耗尽***的所有内存,因此,对于这类内存泄露,称之为隐式内存泄露。
内存泄露时,将会导致内存空间的浪费。一个小的内存泄露可能不需要太注意,但是若程序泄露大块内存,或者渐增式的泄露内存会引起下述现象:先是***性能降低,然后引起复杂的内存耗尽错误;最坏的情况是,一个内存泄露程序可能用完了非常多的内存而引起其他程序出错,而用户不能知道错误到底来自哪里。另外,一个看上去危害不大的内存泄露,可能是另一个问题的先兆。因此,要尽量避免内存泄露现象的发生。
要避免内存泄露,除了要求编程人员具有良好的编码习惯和编码规范之外,关键还要从程序代码上入手,对内存泄露进行高效、可靠的检测。目前常用的内存泄露检测方法是:为内存分配函数和内存释放函数提供debug版本,跟踪内存的分配和释放;程序调试人员手动调用或者在程序结束时自动调用内存泄露信息显示函数,根据跟踪结果显示内存地址、内存块的大小及内存中的内容等信息。但是,这种传统的内存泄露检测方法在嵌入式***中使用时存在下述缺陷:
第一,嵌入式***中的软件一般是启动后一直在运行,通过断电方式结束程序的运行,因此,无法预知程序何时结束,也就无法执行相应的内存泄露检测程序。
第二,嵌入式***中内存的分配和释放,不一定是在同一个文件中,也不一定是在同一个模块中,也可能分配后永远不释放,这依赖于设计时的逻辑,而内存泄露检测模块无法知晓。因此,内存检测时无法提供准确的内存泄露信息,可能会发生内存泄露误报的问题。
第三,在嵌入式***中无法检测内存误释放的问题,由于指针使用错误,有可能会在不应该释放内存的地方进行了释放,从而可能导致程序运行错误或者崩溃。
发明内容
本发明针对现有技术中的内存泄露检测方法在嵌入式***软件开发过程中存在的配置不灵活、使用不方便、容易发生内存泄露误报和误释放的问题,提供了一种内存泄露的检测方法,利用该方法,可实现对嵌入式***内存泄露的分区检测,方法使用灵活、检测效率较高。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种嵌入式***内存泄露的检测方法,包括跟踪内存分配的过程和跟踪内存释放的过程的步骤,以及根据跟踪结果进行内存泄露检测的步骤;
所述内存分配的过程包括通过内存分配函数的参数获取该内存分配函数分配的内存所对应的内存释放范围类型信息及内存释放位置信息并进行保存的步骤;
所述内存释放的过程包括根据所述的内存释放范围类型信息及内存释放位置信息判断内存是否有效,并在内存有效时释放该内存的步骤。
根据本发明,所述内存释放范围类型具体包括下述8类:本函数内,本文件内,本文件夹内,本应用程序中,其他函数内,其他文件内,其他文件夹内以及不释放。
根据本发明,在所述内存释放范围类型为本函数内、本文件内、本文件夹内、本应用程序中及不释放时,所述内存释放位置的值无效;在所述内存释放范围类型为其他函数内时,所述内存释放位置的值为相应的函数名称;在所述内存释放范围类型为其他文件内时,所述内存释放位置的值为相应的文件名称;在所述内存释放范围类型为其他文件夹内时,所述内存释放位置的值为相应的文件夹名称。
根据本发明,为便于跟踪内存泄露的位置及发生泄露的条件,所述内存分配的过程还包括下述步骤:
通过内存分配函数的参数获取并保存内存分配函数所在的文件名、代码行号及函数名信息;
查找与所述文件名和代码行号相对应的最大内存分配编号,将所述最大内存分配编号加1,作为当前分配的内存的内存分配编号。
根据本发明,为有效防止隐式内存泄露造成的内存消耗,在所述跟踪内存分配的过程中,若检测到内存分配编号超过设定值,则输出相应的报警信号。
根据本发明,为便于使用,所述内存释放范围类型信息、内存释放位置信息、内存分配函数所在的文件名、代码行号及函数名信息以数据结构的形式存在于内存中。
根据本发明,为提高数据的安全性和管理的高效性,所述数据结构中还包括有校验码,所述校验码的值在内存分配过程中根据所述内存释放范围类型信息、内存释放位置信息、内存分配函数所在的文件名、代码行号及函数名的信息来确定,并在所述内存释放过程中用于校验数据结构中的信息的有效性。
根据本发明,在所述内存释放的过程中,在根据所述的内存释放范围类型信息及内存释放位置信息判断内存是否有效的步骤之前,首先根据所述数据结构中的校验码判断数据结构中的信息是否正确;在数据结构中的信息正确后,再执行所述判断内存是否有效的步骤。若根据校验码判断数据结构中的信息不正确,则认为不在管理范围之内,返回错误信息。
根据本发明,为便于跟踪内存分配和内存释放,所述数据结构中还包括有内存分配函数所分配的内存的内存指针信息及内存大小的信息。
其中,所述内存分配函数所分配的内存包括程序本身所需的实际内存和所述数据结构所占用的内存。
与现有技术相比,本发明的优点和积极效果是:
1、本发明在内存分配过程中记录内存分配函数分配的内存所对应的内存释放范围类型信息及内存释放位置信息,在内存释放过程中根据该内存释放范围类型信息和内存释放位置信息判断是否释放内存,因此,内存泄露检测模块可以及时有效地跟踪内存应该在何处释放、是否在不该释放的地方释放了内存等信息,并提供准确的内存泄露信息,有效避免了嵌入式***中内存泄露的误报、误释放等问题的发生,提高了检测效率和检测准确率。
2、通过对内存释放范围类型及内存释放位置的跟踪,可以实现在不同文件内、不同文件夹内及不同应用程序中的内存泄露检测,从而实现了对内存泄露的分区检测,提高了检测的灵活性。
3、由于内存泄露检测模块可以及时有效地跟踪内存分配和内存释放过程,因此,可以在嵌入式***程序运行过程中的任一时刻根据需要进行内存泄露的分区检测,有效解决了现有内存泄露检测需要在程序结束时进行、而嵌入式***一般不存在程序结束因而无法进行内存泄露检测的问题。
附图说明
图1是本发明所述嵌入式***内存泄露检测方法一个实施例的基本流程图;
图2是图1实施例中内存分配过程的具体流程图;
图3是图1实施例中内存释放过程的具体流程图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
由于嵌入式***软件一般是启动后一直运行,不存在程序结束,因此,若采用现有的内存泄露检测方法,不仅使用不方便,而且容易出现误报、误释放等问题。针对嵌入式***的上述特点,本发明提供了一种应用于嵌入式***的内存泄露检测方法,该方法的核心是在内存分配过程中保存内存分配函数分配的内存所对应的内存释放范围类型信息及内存释放位置信息,而在内存释放过程中,将根据所述内存释放范围类型信息和内存释放位置信息判断释放的内存释放有效,只在内存有效时才进行内存的释放。在内存分配及内存释放过程中,采用内存泄露检测模块来跟踪内存分配过程和内存释放过程,则内存泄露检测模块可以及时有效地跟踪内存应该在何处释放、是否在不该释放的地方释放了内存等信息,并提供准确的内存泄露信息,有效避免了嵌入式***中内存泄露的误报、误释放等问题的发生,提高了检测效率和检测准确率。
图1示出了本发明所述嵌入式***内存泄露检测方法一个实施例的基本流程图。在该实施例中,内存释放范围类型信息和内存释放位置信息以数据结构的形式存在,用于记录内存块的相关信息。当然,该数据结构中还包含其他一些与分配的内存有关的信息,利用该信息,便于内存泄露检测模块对内存的跟踪和泄露的检测。该实施例的基本流程如下:
S1:建立数据结构,以记录内存块的相关信息。
该实施例为便于内存泄露检测模块及时、有效地跟踪内存的分配和释放,以实现对嵌入式***内存泄露的准确检测,定义了一个内存泄露检测过程使用的数据结构,用来记录内存块的相关信息。该数据结构中包括下述内容:
分配的内存的内存指针:用于标识分配到的内存地址;
分配的内存的内存大小:即分配的内存所占用的内存空间;
内存分配函数所在的文件名路径:用于标识内存分配函数所在的文件名信息;该值可以通过宏获得;
内存分配函数所在的代码行号:该值可以通过宏获得;
内存分配函数所在的函数名:该值可以通过宏获得,用于标识内存分配函数在源代码中所在的位置;
内存分配编号:用于标识所对应的内存是第几次分配操作。在一个运行的程序中,一个内存分配操作可能被调用多次,但是内存泄露可能只发生在其中的某次操作中。为了确认问题所在,除了要知道泄露的位置之外,还必须要知道发生泄露的条件,即内存泄露是在哪次内存分配中发生的,而通过跟踪内存分配编号就可以解决该问题。此外,由于存在隐式内存泄露,为了防止一个地方不断进行内存分配,嵌入式***会随时对内存分配编号进行检查;如果检测到内存分配编号超过设定值,则输出相应的报警信号。
内存释放范围类型:由于嵌入式***不存在程序结束的过程,内存泄露检测模块无法知道分配的内存应该在何处释放,所有就可能不知道已经分配的内存释放是泄露的内存,也无法知道是否在不该释放的地方释放了内存,从而容易产生误报和误释放的问题。为解决该问题,同时也为了使用方便,该实施例在数据结构中增加了“内存释放范围类型”,且根据嵌入式***的程序特点,将内存释放范围类型划分为下述8类:本函数内,本文件内,本文件夹内,本应用程序中,其他函数内,其他文件内,其他文件夹内以及不释放。
内存释放位置:内存释放位置是对上述内存释放范围类型的补充,目的是进一步防止误报和误释放的问题。在该实施例中,在所述内存释放范围类型为本函数内、本文件内、本文件夹内、本应用程序中及不释放时,所述内存释放位置的值无效;在所述内存释放范围类型为其他函数内时,所述内存释放位置的值为相应的函数名称;在所述内存释放范围类型为其他文件内时,所述内存释放位置的值为相应的文件名称;在所述内存释放范围类型为其他文件夹内时,所述内存释放位置的值为相应的文件夹名称。
校验码:用于校验整个数据结构中的信息是否有效,可以选用一个固定的32位整数。如果根据校验码判断数据结构中的信息不正确,则认为不在管理范围之内,返回错误信息,以提高数据的安全性和管理的高效性。
S2:跟踪内存分配过程及内存释放过程。内存分配过程和内存释放过程可分别参考图2和图3的流程图。
S3:调用内存泄露检测模块进行内存泄露检测。
由于可以通过上述设定的数据结构及时有效地跟踪内存分配过程及内存释放过程,避免了产生误报和误释放的问题,因此,在嵌入式***软件运行过程中,可以根据需要随时对内存泄露进行不同文件内、不同文件夹内及不同应用程序中的分区检测。例如,可以在一个模块的退出函数中调用内存泄露检测模块中的显示函数对该模块进行内存泄露检测。
S4:输出内存泄露检测结果。
内存泄露检测的关键是要跟踪内存分配和内存释放的过程,获得内存的分配与释放的相关信息,以便于在调用内存泄露检测显示函数时能够正确获得内存泄露的信息。因此,对内存分配过程及内存释放过程中内存信息的记录显得尤为重要。图2示出了图1实施例中内存分配过程的具体流程图,图3示出了图1实施例中内存释放过程的具体流程图。下面结合上述的数据结构,分别描述内存分配过程和内存释放过程的流程。
如图2所示,该实施例内存分配过程的具体流程如下:
S201:通过内存分配函数参数获取内存分配函数所在的文件名、代码行号及函数名信息,并保存
S202:通过内存分配函数参数获取内存分配函数分配的内存对应的内存释放范围类型及内存释放位置信息,并保存。
S203:查找与所述文件名和代码行号相对应的最大内存分配编号。
S204:将查找到的最大内存分配编号加1,作为当前分配的内存的内存分配编号。
S205:确定校验码的值,并保存。所述检验码为一个32位无符号整数,其值根据所述内存释放范围类型信息、内存释放位置信息、内存分配函数所在的文件名、代码行号及函数名的信息来确定。
S206:利用内存分配函数分配相应的内存。所分配的内存的大小为用户指定的内存大小加上数据结构所占内存的大小。
S207:判断内存分配是否成功。在分配成功时,执行步骤S208;若分配失败,转至步骤S210。
S208:在内存分配成功后,保存所分配的内存的内存指针及内存大小。
S209:额外保存当前内存分配函数所在的文件名、代码行号及当前内存分配编号信息,以便于下次内存分配时计算相应的内存分配编号。
S210:若内存分配失败,则返回空操作。
如图3所示,该实施例内存释放过程的具体流程如下:
S301:通过内存释放函数的参数获取内存释放函数所在的文件名、代码行号及函数名信息,以及内存释放函数待释放的内存地址。
S302:根据待释放的内存地址计算数据结构在内存中的位置。
结合图2流程中的内存分配过程,数据结构在内存中的地址应该为待释放的内存地址减去数据结构所占内存的大小而得到的一个内存地址。
S303:根据数据结构地址获得数据结构,然后根据数据结构中的校验码判断数据结构的正确性。
S304:判断数据结构是否正确。若正确,执行步骤S305;若不正确,转至步骤S311。
S305:在数据结构正确后,根据数据结构中的内存释放范围类型信息和内存释放位置信息判断当前内存的有效性。
S306:判断内存是否有效。在内存有效时,执行步骤S307;在内存无效时,转至步骤S311。
S307:判断是否为用户指定的内存和数据结构。为进一步防止内存的误释放,在内存有效时,再根据内存释放函数所在的文件名、代码行号及函数名信息以及数据结构中的内存释放范围类型及内存释放位置信息判断要释放的内存和数据结构是否为用户指定的内存和数据结构。在判断结果正确时,执行步骤S308;若判断结果错误,转至步骤S311。
S308:在当前内存为用户指定的内存、当前数据结构为指定的数据结构时,释放该指定的内存和数据结构。
S309:判断释放是否成功。若释放成功,执行步骤S310;若释放失败,转至步骤S311。
S310:返回释放成功。
S311:返回释放失败。
采用上述实施例所述的内存分配过程和内存释放过程,可以有效避免误报和误释放的问题。内存泄露检测模块通过对所述内存分配过程及所述内存释放过程进行跟踪,从而能够正确检测内存泄露信息,而且,可以在嵌入式***程序运行的任一时刻进行内存泄露的分区检测,有效解决了目前嵌入式***内存泄露检测过程存在的使用不便、检测效率低的问题。
当然,以上所述仅是本发明的一种优选实施方式而已,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种嵌入式***内存泄露的检测方法,包括跟踪内存分配的过程和跟踪内存释放的过程的步骤,以及根据跟踪结果进行内存泄露检测的步骤;其特征在于,
所述内存分配的过程包括通过内存分配函数的参数获取该内存分配函数分配的内存所对应的内存释放范围类型信息及内存释放位置信息并进行保存的步骤;
所述内存释放的过程包括根据所述的内存释放范围类型信息及内存释放位置信息判断内存是否有效,并在内存有效时释放该内存的步骤。
2.根据权利要求1所述的嵌入式***内存泄露的检测方法,其特征在于,所述内存释放范围类型包括:本函数内,本文件内,本文件夹内,本应用程序中,其他函数内,其他文件内,其他文件夹内以及不释放。
3.根据权利要求2所述的嵌入式***内存泄露的检测方法,其特征在于,在所述内存释放范围类型为本函数内、本文件内、本文件夹内、本应用程序中及不释放时,所述内存释放位置的值无效;在所述内存释放范围类型为其他函数内时,所述内存释放位置的值为相应的函数名称;在所述内存释放范围类型为其他文件内时,所述内存释放位置的值为相应的文件名称;在所述内存释放范围类型为其他文件夹内时,所述内存释放位置的值为相应的文件夹名称。
4.根据权利要求1至3中任一项所述的嵌入式***内存泄露的检测方法,其特征在于,所述内存分配的过程还包括下述步骤:
通过内存分配函数的参数获取并保存内存分配函数所在的文件名、代码行号及函数名信息;
查找与所述文件名和代码行号相对应的最大内存分配编号,将所述最大内存分配编号加1,作为当前分配的内存的内存分配编号。
5.根据权利要求4所述的嵌入式***内存泄露的检测方法,其特征在于,在所述跟踪内存分配的过程中,若检测到内存分配编号超过设定值,则输出相应的报警信号。
6.根据权利要求4所述的嵌入式***内存泄露的检测方法,其特征在于,所述内存释放范围类型信息、内存释放位置信息、内存分配函数所在的文件名、代码行号及函数名信息以数据结构的形式存在于内存中。
7.根据权利要求6所述的嵌入式***内存泄露的检测方法,其特征在于,所述数据结构中还包括有校验码,所述校验码的值在内存分配过程中根据所述内存释放范围类型信息、内存释放位置信息、内存分配函数所在的文件名、代码行号及函数名的信息来确定,并在所述内存释放过程中用于校验数据结构中的信息的有效性。
8.根据权利要求7所述的嵌入式***内存泄露的检测方法,其特征在于,在所述内存释放的过程中,在根据所述的内存释放范围类型信息及内存释放位置信息判断内存是否有效的步骤之前,首先根据所述数据结构中的校验码判断数据结构中的信息是否正确;在数据结构中的信息正确后,再执行所述判断内存是否有效的步骤。
9.根据权利要求7所述的嵌入式***内存泄露的检测方法,其特征在于,所述数据结构中还包括有内存分配函数所分配的内存的内存指针信息及内存大小的信息。
10.根据权利要求1所述的嵌入式***内存泄露的检测方法,其特征在于,所述内存分配函数所分配的内存包括程序本身所需的实际内存和所述数据结构所占用的内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102564760A CN101763305B (zh) | 2009-12-29 | 2009-12-29 | 一种嵌入式***内存泄露的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102564760A CN101763305B (zh) | 2009-12-29 | 2009-12-29 | 一种嵌入式***内存泄露的检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101763305A true CN101763305A (zh) | 2010-06-30 |
CN101763305B CN101763305B (zh) | 2011-12-14 |
Family
ID=42494473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102564760A Active CN101763305B (zh) | 2009-12-29 | 2009-12-29 | 一种嵌入式***内存泄露的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101763305B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662825A (zh) * | 2012-02-22 | 2012-09-12 | 中国人民解放军国防科学技术大学 | 一种面向堆操作程序的内存泄漏检测方法 |
CN103123604A (zh) * | 2011-11-18 | 2013-05-29 | 苹果公司 | 跟踪数据处理***的内存使用的方法 |
CN104808985A (zh) * | 2015-04-02 | 2015-07-29 | 小米科技有限责任公司 | 应用程序中对象的管理方法及装置 |
WO2017035785A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 一种内存泄漏的定位方法和装置 |
CN108536609A (zh) * | 2017-03-02 | 2018-09-14 | 迈普通信技术股份有限公司 | 内存碎片管理***及方法 |
CN108897614A (zh) * | 2018-05-25 | 2018-11-27 | 福建天晴数码有限公司 | 一种基于卷积神经网络的内存预警方法及服务端 |
CN110134611A (zh) * | 2019-05-20 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 内存泄漏分析方法、装置、终端和存储介质 |
CN111324450A (zh) * | 2017-01-25 | 2020-06-23 | 安科讯(福建)科技有限公司 | 一种基于lte协议栈的内存池泄露的方法及其*** |
CN111858112A (zh) * | 2019-04-26 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 一种检测内存泄露的方法、客户端及服务器 |
CN111984496A (zh) * | 2020-07-16 | 2020-11-24 | 北京字节跳动网络技术有限公司 | 一种监控栈内存泄露的方法、装置、介质和电子设备 |
CN112463632A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种内存泄露检测的方法和设备 |
CN112817838A (zh) * | 2019-11-18 | 2021-05-18 | 迈普通信技术股份有限公司 | 内存泄漏信息处理方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539870A (zh) * | 2008-03-21 | 2009-09-23 | 中兴通讯股份有限公司 | 内存泄漏检测装置及方法 |
CN101593152B (zh) * | 2009-06-25 | 2011-07-27 | 青岛海信移动通信技术股份有限公司 | 一种移动终端内存泄漏检测方法及装置 |
-
2009
- 2009-12-29 CN CN2009102564760A patent/CN101763305B/zh active Active
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103123604A (zh) * | 2011-11-18 | 2013-05-29 | 苹果公司 | 跟踪数据处理***的内存使用的方法 |
CN102662825B (zh) * | 2012-02-22 | 2014-07-16 | 中国人民解放军国防科学技术大学 | 一种面向堆操作程序的内存泄漏检测方法 |
CN102662825A (zh) * | 2012-02-22 | 2012-09-12 | 中国人民解放军国防科学技术大学 | 一种面向堆操作程序的内存泄漏检测方法 |
CN104808985A (zh) * | 2015-04-02 | 2015-07-29 | 小米科技有限责任公司 | 应用程序中对象的管理方法及装置 |
CN104808985B (zh) * | 2015-04-02 | 2019-02-19 | 小米科技有限责任公司 | 应用程序中对象的管理方法及装置 |
WO2017035785A1 (zh) * | 2015-09-01 | 2017-03-09 | 深圳好视网络科技有限公司 | 一种内存泄漏的定位方法和装置 |
CN111324450B (zh) * | 2017-01-25 | 2023-04-28 | 安科讯(福建)科技有限公司 | 一种基于lte协议栈的内存池泄露的方法及其*** |
CN111324450A (zh) * | 2017-01-25 | 2020-06-23 | 安科讯(福建)科技有限公司 | 一种基于lte协议栈的内存池泄露的方法及其*** |
CN108536609A (zh) * | 2017-03-02 | 2018-09-14 | 迈普通信技术股份有限公司 | 内存碎片管理***及方法 |
CN108897614A (zh) * | 2018-05-25 | 2018-11-27 | 福建天晴数码有限公司 | 一种基于卷积神经网络的内存预警方法及服务端 |
CN111858112A (zh) * | 2019-04-26 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 一种检测内存泄露的方法、客户端及服务器 |
CN110134611A (zh) * | 2019-05-20 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 内存泄漏分析方法、装置、终端和存储介质 |
CN110134611B (zh) * | 2019-05-20 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 内存泄漏分析方法、装置、终端和存储介质 |
CN112817838A (zh) * | 2019-11-18 | 2021-05-18 | 迈普通信技术股份有限公司 | 内存泄漏信息处理方法、装置、电子设备及存储介质 |
CN111984496A (zh) * | 2020-07-16 | 2020-11-24 | 北京字节跳动网络技术有限公司 | 一种监控栈内存泄露的方法、装置、介质和电子设备 |
CN111984496B (zh) * | 2020-07-16 | 2024-04-16 | 北京字节跳动网络技术有限公司 | 一种监控栈内存泄露的方法、装置、介质和电子设备 |
CN112463632A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种内存泄露检测的方法和设备 |
CN112463632B (zh) * | 2020-12-11 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种内存泄露检测的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101763305B (zh) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763305B (zh) | 一种嵌入式***内存泄露的检测方法 | |
CN106919454B (zh) | 基于lte协议栈的内存池问题定位方法及其*** | |
CN1993679B (zh) | 执行计算机程序的方法、操作***和计算设备 | |
EP0328062A2 (en) | Fault tolerant smart card | |
CN102200937A (zh) | 一种与非闪存中数据读取的方法、装置及电视机*** | |
JP2008287351A (ja) | メモリシステム、メモリコントローラ、制御方法及び制御プログラム | |
CN103678053A (zh) | 计算机自检方法和*** | |
CN101819549B (zh) | 一种内存泄露的定位方法及装置 | |
CN109753378A (zh) | 一种内存故障的隔离方法、装置、***及可读存储介质 | |
CN100538644C (zh) | 执行计算机程序的方法、计算设备 | |
CN101253485A (zh) | 存储装置及其运行方法 | |
CN114385418A (zh) | 通信设备的保护方法、装置、设备和存储介质 | |
CN101349994B (zh) | 一种定位程序错误的方法、***及装置 | |
JP2004342112A (ja) | エラーチェック訂正技法を用いて不揮発性メモリユニットのデータ保持損に応答する装置及び方法 | |
CN107168824A (zh) | 一种断电保护方法及装置 | |
CN103294606A (zh) | 一种分配内存及检测内存溢出的方法和装置 | |
CN101661399A (zh) | 模块化软件移除方法 | |
CN102455979A (zh) | 受损存储单元的资料保护方法 | |
CN103164290A (zh) | 应用内存管理方法和装置 | |
CN107844394B (zh) | 一种内存泄漏的定位方法及装置 | |
CN102981919B (zh) | 快速定位错误源头的内存管理方法 | |
CN113220510A (zh) | 设备检测方法、检测设备和计算机可读存储介质 | |
JP2007323167A (ja) | メモリテスト方法 | |
CN100481110C (zh) | 一种基于***级芯片平台的应用进程保护方法及*** | |
CN112860574B (zh) | Linux内核的内存泄漏检测方法和装置、介质、设备 |
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 |