CN110781075B - 一种内存泄漏的检测方法、装置、系统及存储介质 - Google Patents

一种内存泄漏的检测方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN110781075B
CN110781075B CN201910886436.8A CN201910886436A CN110781075B CN 110781075 B CN110781075 B CN 110781075B CN 201910886436 A CN201910886436 A CN 201910886436A CN 110781075 B CN110781075 B CN 110781075B
Authority
CN
China
Prior art keywords
memory
function
address
debug
program
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.)
Active
Application number
CN201910886436.8A
Other languages
English (en)
Other versions
CN110781075A (zh
Inventor
秦金昆
吴闽华
孟庆晓
戴瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Genew Technologies Co Ltd
Original Assignee
Shenzhen Genew Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Genew Technologies Co Ltd filed Critical Shenzhen Genew Technologies Co Ltd
Priority to CN201910886436.8A priority Critical patent/CN110781075B/zh
Publication of CN110781075A publication Critical patent/CN110781075A/zh
Application granted granted Critical
Publication of CN110781075B publication Critical patent/CN110781075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种内存泄漏的检测方法、装置、系统及存储介质,所述方法包括:接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;当CPU执行到被监控的地址指令后,立刻触发debug异常;进入程序debugIsr();判断PC寄存器的函数地址;读取有效记录并存为文件;反汇编程序执行所述文件,确定申请了内存却没有释放的函数。相较于现有检测方法而言,本发明非常简洁高效,有效解决了现有内存泄漏检测方法中存在的操作复杂、检测效率低、检测困难等问题。

Description

一种内存泄漏的检测方法、装置、系统及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种内存泄漏的检测方法、装置、系统及存储介质。
背景技术
内存泄漏是指程序中己动态分配的堆内存由于某种原因在使用完毕后未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。随着计算机应用需求的日益增加,应用程序的设计与开发也相应的日趋复杂,开发人员在程序实现的过程中处理的变量也大量增加,因此需要对内存泄漏进行有效的检测,以便开发人员对程序进行优化。
然而,检测内存泄漏,是一个很复杂的过程,有时候可以分析代码,找出内存泄漏的地方,但是代码量越来越庞大,代码结构越来越复杂,单纯靠检视已经无法定位出内存泄漏的地方;检测内存泄漏时,有时还会借助第三方工具或者软件来实现,对底层内存申请的函数进行监控,一旦申请成功,则把申请信息通过文件或者网络接口传递给用户,这样虽然能解决问题,但是如果设备在远程运行根本不具备连接控制台的能力,而且第三方软件又涉及到版权,还必须把其编译到目标系统上,前期的准备工作非常复杂。
因此,现有的内存泄漏检测技术存在操作复杂、检测效率低、检测困难等问题,还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种内存泄漏的检测方法、装置、系统及存储介质,旨在解决现有内存泄漏检测方法中存在的操作复杂、检测效率低、检测困难等问题。
为了达到上述目的,本发明采取了以下技术方案:
一种内存泄漏的检测方法,其中,所述方法包括如下步骤:
a、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
b、当CPU执行到被监控的地址指令后,立刻触发debug异常;
c、进入程序debugIsr();
具体地,所述程序debugIsr()为debug异常中断程序。
d、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
e、读取有效记录并存为文件;
f、反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
所述的一种内存泄漏的检测方法,其中,所述内存分配函数为malloc(),所述内存释放函数为free()。
所述的一种内存泄漏的检测方法,其中,所述步骤a之前包括步骤:
a0、CPU提供DAC1寄存器用于设置内存分配函数的地址,CPU提供DAC2寄存器用于保存内存释放函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
所述的一种内存泄漏的检测方法,其中,所述步骤c包括步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
一种内存泄漏的检测装置,其中,包括:处理器、存储器和通信总线;
所述存储器上存储有可被所述处理器执行的一种内存泄漏的检测方法程序;
所述通信总线实现所述处理器和所述存储器之间的连接通信;
所述处理器执行所述一种内存泄漏的检测方法程序时实现如下步骤:
a、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
b、当CPU执行到被监控的地址指令后,立刻触发debug异常;
c、进入程序debugIsr();
d、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
e、读取有效记录并存为文件;
f、反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时:
所述内存分配函数为malloc(),所述内存释放函数为free()。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
a0、CPU提供DAC1寄存器用于设置内存分配函数的地址,CPU提供DAC2寄存器用于保存内存释放函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
一种内存泄漏的检测系统,其中,包括:
接收模块,用于接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
警报模块,用于当CPU执行到被监控的地址指令后,立刻触发debug异常;
debugIsr模块,进入程序debugIsr();
判断模块,用于判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
读存模块,用于读取有效记录并存为文件;
执行模块,用于反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任意一项所述的一种内存泄漏的检测方法中的步骤。
相较于现有技术,本发明提供了一种内存泄漏的检测方法、装置、系统及存储介质,通过CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控,一旦CPU执行到被监控的地址指令后,立刻触发debug异常,并进入程序debugIsr()。在程序debugIsr()函数中,判断PC寄存器的函数地址,当PC寄存器的函数地址等于内存分配函数地址时,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间,当PC寄存器的函数地址等于内存释放函数地址时,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除,然后读取有效记录并存为文件,反汇编程序执行保存的文件,根据记录信息中的函数调用栈,确定申请了内存却没有释放的函数,可知具体哪个位置申请了内存没有释放导致了泄漏。因此,相较于现有检测方法而言,本发明非常简洁高效,有效解决了现有内存泄漏检测方法中存在的操作复杂、检测效率低、检测困难等问题。
附图说明
图1为本发明提供的一种内存泄漏的检测方法的流程图。
图2为本发明实施例中固定内存地址的记录内容初始化设置的示意图。
图3为本发明实施例中进入程序debugIsr()到退出程序debugIsr()之间的具体流程图。
图4为本发明提供的一种内存泄漏的检测装置的功能原理框图。
图5为本发明提供的一种内存泄漏的检测系统的功能模块框图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1-图3,本发明提供的一种内存泄漏的检测方法,其中,所述方法包括如下步骤:
S100、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
具体地,本发明实施例中所述内存分配函数为malloc(),所述内存释放函数为free()。
本发明实施例中,所述步骤S100之前包括步骤:
a0、CPU提供DAC1寄存器用于设置malloc()函数的地址,CPU提供DAC2寄存器用于保存free()函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
具体地,设定记录栈内存地址A。请参阅图2,为固定内存地址的记录内容初始化设置的示意图。
S200、当CPU执行到被监控的地址指令后,立刻触发debug异常;
S300、进入程序debugIsr();
具体地,所述程序debugIsr()为debug异常中断程序;
具体地,注册debug异常中断程序debugIsr(),一旦CPU运行到malloc函数或者free函数中,CPU立刻被中断,并进入程序debugIsr()。
本发明实施例中,所述步骤S300还包括步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
S400、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
为了更进一步理解本发明的上述步骤S300-S400,现用进入程序debugIsr()到退出程序debugIsr()之间的具体实施流程加以说明。请参阅图3,其为本发明实施例中进入程序debugIsr()到退出程序debugIsr()之间的具体流程图。
本发明实施例中进入程序debugIsr()到退出程序debugIsr()之间的具体步骤包括:
S3、进入程序debugIsr();
S31、获取调用栈、PC寄存器;
S4、判断PC寄存器的函数地址;
若PC寄存器的函数地址等于所述malloc()函数地址,则执行步骤S41;
S41、在地址A开始新增一条记录:保存5级调用栈、PC、时间以及申请的内存地址;
S42、记录条数增加1;
若PC寄存器的函数地址不等于所述malloc()函数地址,则执行步骤S401;
S401、监测到free()函数被执行;
S402、释放的地址保存在寄存器r3中;
S403、从地址A开始的记录中,逐一比较,删除申请内存地址等于r3的记录;
S404、记录条数减去1;
S9、退出程序debugIsr(),CPU继续执行正常程序。
S500、读取有效记录并存为文件;
具体地,提供读取记录的接口,将所有有效的记录读取出来,放到电脑上存为文件。
S600、反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
具体地,反汇编程序执行所述文件,将步骤S500中的每条记录中的PC值和调用栈在反汇编结果中搜索,确定申请了内存却没有释放的函数和任务。
为了更好的理解本发明,现举例一段内存泄漏代码:
Figure BDA0002207426220000081
testMemLeak为测试任务体,经过内存泄漏监控记录的信息如下:
Figure BDA0002207426220000082
从上表可以看出,testMemLeak中申请了0x2000字节的内存,并且一直没有释放。
请参阅图4,基于上述一种内存泄漏的检测方法,本发明还提供了一种内存泄漏的检测装置,包括:处理器10、存储器20、通信总线30以及通信接口50,其中,所述处理器10通过所述通信总线30与所述存储器20连接,所述通信接口50通过所述通信总线30与所述处理器10连接;
所述存储器20上存储有可被所述处理器10执行的内存泄漏的检测方法程序40;
图4仅示出了内存泄漏的检测装置的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述处理器10执行所述内存泄漏的检测方法程序40时实现如下步骤:
a、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
b、当CPU执行到被监控的地址指令后,立刻触发debug异常;
c、进入程序debugIsr();
d、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
e、读取有效记录并存为文件;
f、反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时:
所述内存分配函数为malloc(),所述内存释放函数为free()。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
a0、CPU提供DAC1寄存器用于设置内存分配函数的地址,CPU提供DAC2寄存器用于保存内存释放函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
所述的一种内存泄漏的检测装置,其中,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
请参阅图5,其为本发明提供的一种内存泄漏的检测系统的功能模块框图。在本实施例中,安装有内存泄漏的检测方法程序的系统可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器20中,并由一个或多个处理器(本实施例为所述处理器10)所执行,以完成本发明。在图5中,安装有内存泄漏的检测方法程序的系统可以被分割成接收模块21、警报模块22、debugIsr模块23、判断模块24、读存模块25、执行模块26。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述内存泄漏的检测方法程序在所述设备中的执行过程。以下描述将具体介绍所述模块21-26的功能。
接收模块21,用于接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
警报模块22,用于当CPU执行到被监控的地址指令后,立刻触发debug异常;
debugIsr模块23,进入程序debugIsr();
判断模块24,用于判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
读存模块25,用于读取有效记录并存为文件;
执行模块26,用于反汇编程序执行所述文件,确定申请了内存却没有释放的函数。
基于上述实施例,本发明还提供了一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任意一项所述的一种内存泄漏的检测方法中的步骤,具体如上所述。
综上所述,本发明提供了一种内存泄漏的检测方法、装置、系统及存储介质,通过CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控,一旦CPU执行到被监控的地址指令后,立刻触发debug异常,并进入程序debugIsr()。在程序debugIsr()函数中,判断PC寄存器的函数地址,当PC寄存器的函数地址等于内存分配函数地址时,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间,当PC寄存器的函数地址等于内存释放函数地址时,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除,然后读取有效记录并存为文件,反汇编程序执行保存的文件,根据记录信息中的函数调用栈,确定申请了内存却没有释放的函数,可知具体哪个位置申请了内存没有释放导致了泄漏。因此,相较于现有检测方法而言,本发明非常简洁高效,有效解决了现有内存泄漏检测方法中存在的操作复杂、检测效率低、检测困难等问题。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种内存泄漏的检测方法,其特征在于,所述方法包括如下步骤:
a、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
b、当CPU执行到被监控的地址指令后,立刻触发debug异常;
c、进入程序debugIsr();所述程序debugIsr()为debug异常中断程序;
d、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
e、读取有效记录并存为文件;
f、反汇编程序执行所述文件,确定申请了内存却没有释放的函数;所述反汇编程序执行所述文件,将每条记录中的PC值和调用栈在反汇编结果中搜索,确定申请了内存却没有释放的函数和任务。
2.根据权利要求1所述的一种内存泄漏的检测方法,其特征在于,所述内存分配函数为malloc(),所述内存释放函数为free()。
3.根据权利要求1所述的一种内存泄漏的检测方法,其特征在于,所述步骤a之前包括步骤:
a0、CPU提供DAC1寄存器用于设置内存分配函数的地址,CPU提供DAC2寄存器用于保存内存释放函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
4.根据权利要求1所述的一种内存泄漏的检测方法,其特征在于,所述步骤c包括步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
5.一种内存泄漏的检测装置,其特征在于,包括:处理器、存储器和通信总线;
所述存储器上存储有可被所述处理器执行的一种内存泄漏的检测方法程序;
所述通信总线实现所述处理器和所述存储器之间的连接通信;
所述处理器执行所述一种内存泄漏的检测方法程序时实现如下步骤:
a、接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
b、当CPU执行到被监控的地址指令后,立刻触发debug异常;
c、进入程序debugIsr();所述程序debugIsr()为debug异常中断程序;
d、判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
e、读取有效记录并存为文件;
f、反汇编程序执行所述文件,确定申请了内存却没有释放的函数;所述反汇编程序执行所述文件,将每条记录中的PC值和调用栈在反汇编结果中搜索,确定申请了内存却没有释放的函数和任务。
6.根据权利要求5所述的一种内存泄漏的检测装置,其特征在于,所述处理器执行所述一种内存泄漏的检测方法程序时:
所述内存分配函数为malloc(),所述内存释放函数为free()。
7.根据权利要求5所述的一种内存泄漏的检测装置,其特征在于,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
a0、CPU提供DAC1寄存器用于设置内存分配函数的地址,CPU提供DAC2寄存器用于保存内存释放函数的地址;
a1、固定内存地址的记录内容初始化设置,使能指令监控。
8.根据权利要求5所述的一种内存泄漏的检测装置,其特征在于,所述处理器执行所述一种内存泄漏的检测方法程序时还实现如下步骤:
c1、将debug异常中断时的调用栈和PC寄存器传入debugIsr()函数,作为其参数。
9.一种内存泄漏的检测系统,其特征在于,包括:
接收模块,用于接收CPU提供的debug命令,对内存分配函数和内存释放函数指令进行监控;
警报模块,用于当CPU执行到被监控的地址指令后,立刻触发debug异常;
debugIsr模块,进入程序debugIsr();所述程序debugIsr()为debug异常中断程序;
判断模块,用于判断PC寄存器的函数地址,如果所述PC寄存器的函数地址等于所述内存分配函数地址,则在固定内存开始处新增一条记录,用于记录调用栈、申请内存大小、申请成功的内存地址以及申请时间;如果所述PC寄存器的函数地址等于所述内存释放函数地址,则从固定内存开始处搜索所有记录,找出释放地址所在的记录,将这条记录删除;
读存模块,用于读取有效记录并存为文件;
执行模块,用于反汇编程序执行所述文件,确定申请了内存却没有释放的函数;所述反汇编程序执行所述文件,将每条记录中的PC值和调用栈在反汇编结果中搜索,确定申请了内存却没有释放的函数和任务。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-4任意一项所述的一种内存泄漏的检测方法中的步骤。
CN201910886436.8A 2019-09-19 2019-09-19 一种内存泄漏的检测方法、装置、系统及存储介质 Active CN110781075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910886436.8A CN110781075B (zh) 2019-09-19 2019-09-19 一种内存泄漏的检测方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910886436.8A CN110781075B (zh) 2019-09-19 2019-09-19 一种内存泄漏的检测方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN110781075A CN110781075A (zh) 2020-02-11
CN110781075B true CN110781075B (zh) 2022-08-30

Family

ID=69384235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910886436.8A Active CN110781075B (zh) 2019-09-19 2019-09-19 一种内存泄漏的检测方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN110781075B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274155B (zh) * 2020-02-25 2021-08-06 腾讯科技(深圳)有限公司 动态库的内存操作记录方法、装置、设备及存储介质
CN112860574B (zh) * 2021-03-15 2024-02-20 北京车和家信息技术有限公司 Linux内核的内存泄漏检测方法和装置、介质、设备
CN113297074B (zh) * 2021-05-21 2023-12-22 百果园技术(新加坡)有限公司 一种内存跟踪方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1885275A (zh) * 2005-06-20 2006-12-27 中兴通讯股份有限公司 一种嵌入式系统及其实时内存监控处理方法
CN103455424A (zh) * 2013-09-18 2013-12-18 哈尔滨工业大学 基于VxWorks操作系统的动态内存泄漏检测方法及装置
CN107346266A (zh) * 2017-06-09 2017-11-14 烽火通信科技股份有限公司 基于VxWorks操作系统的内存分配信息跟踪方法及装置
CN108205447A (zh) * 2016-12-20 2018-06-26 德克萨斯仪器股份有限公司 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861305B2 (en) * 2007-02-07 2010-12-28 International Business Machines Corporation Method and system for hardware based program flow monitor for embedded software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1885275A (zh) * 2005-06-20 2006-12-27 中兴通讯股份有限公司 一种嵌入式系统及其实时内存监控处理方法
CN103455424A (zh) * 2013-09-18 2013-12-18 哈尔滨工业大学 基于VxWorks操作系统的动态内存泄漏检测方法及装置
CN108205447A (zh) * 2016-12-20 2018-06-26 德克萨斯仪器股份有限公司 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎
CN107346266A (zh) * 2017-06-09 2017-11-14 烽火通信科技股份有限公司 基于VxWorks操作系统的内存分配信息跟踪方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中国新通信;李建辉;《C语言中的内存泄漏原因及对策分析》;20151231;第17卷(第5期);第29页 *

Also Published As

Publication number Publication date
CN110781075A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN110781075B (zh) 一种内存泄漏的检测方法、装置、系统及存储介质
US7783865B2 (en) Conditional data watchpoint management
US20120079594A1 (en) Malware auto-analysis system and method using kernel callback mechanism
US20090172664A1 (en) Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests
CN114168222B (zh) 一种启动耗时的获取方法、装置、终端设备和存储介质
EP2615552A1 (en) System testing method
CN110633190B (zh) 一种应用程序内存监控方法、装置、设备及存储介质
CN111813646B (zh) docker容器环境下注入应用探针的方法和装置
US20240095174A1 (en) Method for detecting error of operating system kernel memory in real time
KR102545765B1 (ko) 메모리 오류를 검출하는 방법 및 시스템
US10514972B2 (en) Embedding forensic and triage data in memory dumps
EP1990724A1 (en) Method for locating resource leaks during software development
CN112068932A (zh) 应用程序的集成、监控方法、装置、系统、设备及介质
CN110750450A (zh) 一种软件死循环的定位方法、装置、系统及存储介质
US9104801B2 (en) Analyzing concurrent debugging sessions
CN118567971A (zh) 用于测试计算机程序的方法
US8707267B1 (en) Debugging a computer program by interrupting program execution in response to access of unused I/O port
CN112199642A (zh) 一种安卓系统反调试的检测方法、移动终端及存储介质
US8694989B1 (en) Virtual installation environment
CN116841862A (zh) 死锁检测方法
CN112068980B (zh) 采样cpu挂死前信息的方法和装置、设备和存储介质
US7539839B1 (en) Method to test error recovery with selective memory allocation error injection
CN112287353A (zh) 一种漏洞检测方法、终端及存储介质
CN111143851A (zh) 适用于操作系统内核对象地址泄露的检测方法及系统
CN112486712B (zh) 一种嵌入式系统中诊断设备无响应的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant