CN106844207A - 一种诊断内存泄漏的方法及设备 - Google Patents

一种诊断内存泄漏的方法及设备 Download PDF

Info

Publication number
CN106844207A
CN106844207A CN201710031503.9A CN201710031503A CN106844207A CN 106844207 A CN106844207 A CN 106844207A CN 201710031503 A CN201710031503 A CN 201710031503A CN 106844207 A CN106844207 A CN 106844207A
Authority
CN
China
Prior art keywords
storage allocation
releasing memory
configuration file
memory
called
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
Application number
CN201710031503.9A
Other languages
English (en)
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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201710031503.9A priority Critical patent/CN106844207A/zh
Publication of CN106844207A publication Critical patent/CN106844207A/zh
Pending legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术应用领域,尤其涉及一种诊断内存泄漏的方法及设备,该方法包括:封装分配/释放内存的系统函数;调用封装后的分配/释放内存的函数。本发明实施例对系统函数Malloc/Free进行封装,开发者在系统内不再直接调用Malloc/Free,而是调用封装的函数。本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。

Description

一种诊断内存泄漏的方法及设备
技术领域
本发明涉及计算机技术应用领域,尤其涉及一种诊断内存泄漏的方法及设备。
背景技术
在一些编程语言以及相关的运行时间中,通常会由应用程序本身提供一种内存管理功能。对于那不再被程序需要的内存是由程序设计员来释放。如果程序不能合理释放不同的内存将导致内存资源的浪费,即这些内存将不能被任何其他的程序使用。导致这种内存浪费的程序错误通常称之为“内存泄露”。内存泄露会导致计算机的性能降低,严重的时候会导致应用程序的运行占用所有的内存并导致计算机崩溃。因此,内存泄露由于其对计算机的性能造成巨大影响而消弱了计算机的可获得性和安全性。
现有的内存泄露的诊断方法对工业应用的效果有限,因为这些现有的方法通常将基本类型识别为嫌疑类型。例如,一种现有技术建议使用引用来查找负责内存泄露的有用对象。但是引用不能包含执行语境信息。被引用的现有对象因为是基本的常见使用类型,可能同时被多个引用者持有。在这种情况下,人们依然不了解这些引用为什么会产生以及在何种条件下泄露问题会被再现,诊断以及修复是否正确难以进行判别。
在嵌入式系统开发过程中,内存管理给了开发者很大的自由度,也给开发者管理内存带来了很大的负担,内存泄漏的影响是致命的,而且内存泄漏的问题查找起来很麻烦。嵌入式系统中,大多数方案采用动态内存管理方式,当应用程序需要使用内存资源时进行申请,当使用完毕后释放内存资源。而在这个过程中经常出现程序漏洞或者人员疏忽,导致内存无法释放,出现内存泄漏问题,随着系统长时间运行,内存越用越少,最后无内存可用,程序最终会因为没有足够内存空间而无法正常运行,导致系统奔溃死机,后果非常严重。此外,在嵌入式系统开发过程中,直接调用系统函数,一旦发生内存泄漏,也很难定位问题。
综上,一个系统的泄露诊断起来是非常复杂的,尤其是对于那些每次连续以及较小容量地发生的缓慢泄露而言更是如此。因此,如何有效地准确检测内存泄漏并合理释放内存是一个亟待解决的棘手难题。
发明内容
针对上述现有技术的缺点,本发明的目的是提供一种便于定位内存泄漏问题的诊断内存泄漏的方法及设备,通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,方便开发者查找系统中未释放的内存是否是当前系统运行所需要的。
本发明实施例提供的一种诊断内存泄漏的方法,该方法包括:
封装分配/释放内存的系统函数;
调用封装后的分配/释放内存的函数。
进一步地,上述方法中,所述调用封装后的分配内存的函数,包括:
首先对分配内存进行调用;
如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;
如果分配内存不能成功调用,则不写入分配内存配置文件中。
进一步地,上述方法中,所述分配内存参数包括:
分配内存进程号、分配内存模块号、分配内存文件名、分配内存文件行号以及分配的内存空间大小。
进一步地,上述方法中,所述调用封装后的释放内存的函数,包括:
首先对释放内存进行调用;
如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;
如果释放内存不能成功调用,则不写入释放内存配置文件中。
进一步地,上述方法中,还包括:
比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
进一步地,上述方法中,所述比较分配内存和释放内存,具体包括:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
本发明实施例提供的一种诊断内存泄漏的设备,该设备包括:
封装模块,用于封装分配/释放内存的系统函数;
调用模块,用于调用封装后的分配/释放内存的函数。
进一步地,上述设备中,所述调用模块,具体用于:
首先对分配内存进行调用;
如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;
如果分配内存不能成功调用,则不写入分配内存配置文件中。
进一步地,上述设备中,所述分配内存参数包括:
分配内存进程号、分配内存模块号、分配内存文件名、分配内存文件行号以及分配的内存空间大小。
进一步地,上述设备中,所述调用模块,还用于:
首先对释放内存进行调用;
如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;
如果释放内存不能成功调用,则不写入释放内存配置文件中。
进一步地,上述设备中,还包括:
比较模块,用于比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
进一步地,上述设备中,所述比较模块,具体用于:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
与现有技术相比,本发明实施例诊断内存泄漏的方法,包括:封装分配/释放内存的系统函数;调用封装后的分配/释放内存的函数。本发明实施例对系统函数Malloc/Free进行封装,开发者在系统内不再直接调用Malloc/Free,而是调用封装的函数。本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种诊断内存泄漏的方法流程图;
图2为本发明提供的一种调用封装后的分配内存的函数流程图;
图3为本发明提供的一种调用封装后的释放内存的函数流程图;
图4为本发明提供的一种诊断内存泄漏的设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
标准C语言提供的Malloc是动态分配内存的函数,Free是和Malloc配对使用的释放Malloc分配的内存函数,一般的实时操作系统中的内存管理函数都可以在某种程度上实现这种内存分配及释放的功能。一般来说,Malloc函数是分配给定的字节数,并返回一个指向它们的指针。如果没有足够的可用内存,那么它返回一个空指针;Free函数是指获得指向由Malloc分配的内存片段的指针,并将其释放,以便后续的程序或操作系统使用。
在嵌入系统开发过程中,如果开发者直接使用Malloc/Free系统提供的函数,一旦发生内存泄漏,会很难下手查找问题点。本发明就是为诊断内存泄漏问题提供解决方案。优选的,本发明实施中通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图1所示,本发明实施例公开了一种诊断内存泄漏的方法,该方法包括:
步骤S101,封装分配/释放内存的系统函数;
步骤S102,调用封装后的分配/释放内存的函数。
进一步地,上述方法中,所述分配/释放内存的函数是Malloc/Free函数。
具体的,在上述步骤S101中,封装的分配内存Malloc的函数如下:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, intsize);
其中:Pid是进程号,Module 是模块号,File为文件名,Line 为文件行号,Size 为分配的内存空间大小。
具体的,在上述步骤S101中,封装的释放内存Free的函数如下:
Void Phicomm_xx_free(int pid,int module,void* ptr);
其中:Pid是进程号,Module是 模块号,Ptr为待释放的指针地址。
本发明实施例通过对系统函数Malloc/Free进行封装,开发者在系统内不再直接调用Malloc/Free,而是调用封装的函数。本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
进一步地,上述方法中,所述调用封装后的分配内存的函数,如图2所示,包括:
步骤S201,首先对分配内存进行调用;
步骤S202,如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;如果分配内存不能成功调用,则不写入分配内存配置文件中。
实施中,调用封装后的分配内存的函数:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, intsize);
具体包括:
首先对Malloc 进行调用。
如果Malloc成功调用,将对应的参数写入指定的配置文件malloc.conf。
如果Malloc不能成功调用,则不写入配置文件malloc.conf。
进一步地,上述方法中,所述分配内存参数包括:
分配内存进程号pid、分配内存模块号module、分配内存文件名file、分配内存文件行号line以及分配的内存空间大小size。
进一步地,上述方法中,所述调用封装后的释放内存的函数,如图3所示,包括:
步骤S301,首先对释放内存进行调用;
步骤S302,如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;如果释放内存不能成功调用,则不写入释放内存配置文件中。
实施中,调用封装后的释放内存的函数:
Void Phicomm_xx_free(int pid,int module,void* ptr);
具体包括:
首先对Free进行调用。
如果Free成功调用,将对应的参数写入指定的配置文件free.conf。
如果Free不能成功调用,则不写入配置文件free.conf。
进一步地,上述方法中,所述释放内存参数包括:
释放内存进程号pid、释放内存模块号module以及待释放的指针地址ptr。
在嵌入系统开发过程中,如果开发者直接使用Malloc/Free系统提供的函数,一旦发生内存泄漏,会很难下手查找问题点。本发明实施例,通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
进一步地,上述方法中,还包括:
比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
本发明实施例在系统中开启一个专门处理对比两个文件的进程,这个进程的优先级最低,在系统空闲的时候比较分配内存和释放内存的配置文件,即比较malloc.conf和free.conf 。当比较发现两文件中有相同项时,则将两文件中的对应项删除。
进一步地,上述方法中,所述比较分配内存和释放内存,具体包括:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
具体的,本发明实施例,比较malloc.conf和free.conf时,比较的参数为进程号pid,模块号module,指针地址ptr。当比较发现两文件中有相同项时,则将两文件中的对应项删除。如下所示:
Void phicomm_compare_buffer(void)
{
If((m_pid == f_pid)&&(m_module==f_module)&&(m_ptr==f_ptr))
删除malloc.conf,free.conf 文件中对应项。
Else
不处理。
}
本发明实施例,当开发者需要诊断系统时,只需要查看malloc.conf文件,比较malloc.conf文件中的各项是不是当前系统运行所需要的分配空间。本发明实施例能够很清晰的帮助到开发者诊断内存泄漏问题。
综上,本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,能够在嵌入式系统便捷的诊断内存泄漏问题,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
基于相同的技术构思,本发明实施例还提供一种诊断内存泄漏的设备,该设备可执行上述方法实施例,由于该设备解决问题的原理与前述一种诊断内存泄漏的方法相似,因此该设备的实施可以参见方法的实施。
如图4所示,本发明实施例提供的一种诊断内存泄漏的设备,该设备包括:
封装模块401,用于封装分配/释放内存的系统函数;
调用模块402,用于调用封装后的分配/释放内存的函数。
进一步地,上述设备中,所述分配/释放内存的函数是Malloc/Free函数。
具体的,上述封装模块401,封装的分配内存Malloc的函数如下:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, intsize);
其中:Pid是进程号,Module 是模块号,File为文件名,Line 为文件行号,Size 为分配的内存空间大小。
具体的,上述封装模块401,封装的释放内存Free的函数如下:
Void Phicomm_xx_free(int pid,int module,void* ptr);
其中:Pid是进程号,Module是 模块号,Ptr为待释放的指针地址。
本发明实施例通过对系统函数Malloc/Free进行封装,开发者在系统内不再直接调用Malloc/Free,而是调用封装的函数。本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
进一步地,上述设备中,所述调用模块402,具体用于:
首先对分配内存进行调用;
如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;
如果分配内存不能成功调用,则不写入分配内存配置文件中。
进一步地,上述设备中,所述分配内存参数包括:
分配内存进程号、分配内存模块号、分配内存文件名、分配内存文件行号以及分配的内存空间大小。
实施中,调用模块402,调用封装后的分配内存的函数:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, intsize);
具体包括:
首先对Malloc 进行调用。
如果Malloc成功调用,将对应的参数写入指定的配置文件malloc.conf。
如果Malloc不能成功调用,则不写入配置文件malloc.conf。
进一步地,上述方法中,所述分配内存参数包括:
分配内存进程号pid、分配内存模块号module、分配内存文件名file、分配内存文件行号line以及分配的内存空间大小size。
进一步地,上述设备中,所述调用模块402,还用于:
首先对释放内存进行调用;
如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;
如果释放内存不能成功调用,则不写入释放内存配置文件中。
进一步地,上述设备中,所述释放内存参数包括:
释放内存进程号、释放内存模块号以及待释放的指针地址。
实施中,调用模块402,调用封装后的释放内存的函数:
Void Phicomm_xx_free(int pid,int module,void* ptr);
具体包括:
首先对Free进行调用。
如果Free成功调用,将对应的参数写入指定的配置文件free.conf。
如果Free不能成功调用,则不写入配置文件free.conf。
进一步地,上述方法中,所述释放内存参数包括:
释放内存进程号pid、释放内存模块号module以及待释放的指针地址ptr。
在嵌入系统开发过程中,如果开发者直接使用Malloc/Free系统提供的函数,一旦发生内存泄漏,会很难下手查找问题点。本发明实施例,通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
进一步地,上述设备中,还包括:
比较模块,用于比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
本发明实施例在系统中开启一个专门处理对比两个文件的进程,这个进程的优先级最低,在系统空闲的时候比较分配内存和释放内存的配置文件,即比较malloc.conf和free.conf 。当比较发现两文件中有相同项时,则将两文件中的对应项删除。
进一步地,上述设备中,所述比较模块,具体用于:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
具体的,本发明实施例,比较malloc.conf和free.conf时,比较的参数为进程号pid,模块号module,指针地址ptr。当比较发现两文件中有相同项时,则将两文件中的对应项删除。如下所示:
Voidphicomm_compare_buffer(void)
{
If((m_pid == f_pid)&&(m_module==f_module)&&(m_ptr==f_ptr))
删除malloc.conf,free.conf 文件中对应项。
Else
不处理。
}
本发明实施例,当开发者需要诊断系统时,只需要查看malloc.conf文件,比较malloc.conf文件中的各项是不是当前系统运行所需要的分配空间。本发明实施例能够很清晰的帮助到开发者诊断内存泄漏问题。
综上,本发明实施例通过对系统函数的封装,在系统中清晰的记录内存的分配和释放情况,能够在嵌入式系统便捷的诊断内存泄漏问题,便于开发者查找系统中未释放的内存是否是当前系统运行所需要的,便于定位内存泄漏的问题。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种诊断内存泄漏的方法,其特征在于,该方法包括:
封装分配/释放内存的系统函数;
调用封装后的分配/释放内存的函数。
2.根据权利要求1所述的方法,其特征在于,所述调用封装后的分配内存的函数,包括:
首先对分配内存进行调用;
如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;
如果分配内存不能成功调用,则不写入分配内存配置文件中。
3.根据权利要求2所述的方法,其特征在于,所述分配内存参数包括:
分配内存进程号、分配内存模块号、分配内存文件名、分配内存文件行号以及分配的内存空间大小。
4.根据权利要求1或3所述的方法,其特征在于,所述调用封装后的释放内存的函数,包括:
首先对释放内存进行调用;
如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;
如果释放内存不能成功调用,则不写入释放内存配置文件中。
5.根据权利要求4所述的方法,其特征在于,还包括:
比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
6.根据权利要求5所述的方法,其特征在于,所述比较分配内存和释放内存,具体包括:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
7.一种诊断内存泄漏的设备,其特征在于,该设备包括:
封装模块,用于封装分配/释放内存的系统函数;
调用模块,用于调用封装后的分配/释放内存的函数。
8.根据权利要求7所述的设备,其特征在于,所述调用模块,具体用于:
首先对分配内存进行调用;
如果分配内存成功调用,将对应的分配内存参数写入指定的分配内存配置文件中;
如果分配内存不能成功调用,则不写入分配内存配置文件中。
9.根据权利要求8所述的设备,其特征在于,所述分配内存参数包括:
分配内存进程号、分配内存模块号、分配内存文件名、分配内存文件行号以及分配的内存空间大小。
10.根据权利要求7或9所述的设备,其特征在于,所述调用模块,还用于:
首先对释放内存进行调用;
如果释放内存成功调用,将对应的释放内存参数写入指定的释放内存配置文件中;
如果释放内存不能成功调用,则不写入释放内存配置文件中。
11.根据权利要求10所述的设备,其特征在于,还包括:
比较模块,用于比较分配内存和释放内存,当分配内存配置文件中和释放内存配置文件中有相同项时,则删除分配内存和释放内存配置文件中的该对应项。
12.根据权利要求11所述的设备,其特征在于,所述比较模块,具体用于:
比较分配内存和释放内存的参数,当分配内存配置文件中和释放内存配置文件中有相同参数项时,则删除分配内存和释放内存配置文件中的该对应参数项。
CN201710031503.9A 2017-01-17 2017-01-17 一种诊断内存泄漏的方法及设备 Pending CN106844207A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710031503.9A CN106844207A (zh) 2017-01-17 2017-01-17 一种诊断内存泄漏的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710031503.9A CN106844207A (zh) 2017-01-17 2017-01-17 一种诊断内存泄漏的方法及设备

Publications (1)

Publication Number Publication Date
CN106844207A true CN106844207A (zh) 2017-06-13

Family

ID=59124713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710031503.9A Pending CN106844207A (zh) 2017-01-17 2017-01-17 一种诊断内存泄漏的方法及设备

Country Status (1)

Country Link
CN (1) CN106844207A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282430A (zh) * 2020-12-03 2021-08-20 延锋伟世通电子科技(南京)有限公司 一种防止嵌入式系统内存泄露的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172513A1 (en) * 2003-03-01 2004-09-02 International Business Machines Corporation System and method for detecting memory management programming errors
CN101539870A (zh) * 2008-03-21 2009-09-23 中兴通讯股份有限公司 内存泄漏检测装置及方法
US20130054925A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Memory allocation tracking
US20130054923A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Automatic memory leak detection
CN103455424A (zh) * 2013-09-18 2013-12-18 哈尔滨工业大学 基于VxWorks操作系统的动态内存泄漏检测方法及装置
CN105260314A (zh) * 2015-11-03 2016-01-20 上海斐讯数据通信技术有限公司 内存泄漏的监测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172513A1 (en) * 2003-03-01 2004-09-02 International Business Machines Corporation System and method for detecting memory management programming errors
CN101539870A (zh) * 2008-03-21 2009-09-23 中兴通讯股份有限公司 内存泄漏检测装置及方法
US20130054925A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Memory allocation tracking
US20130054923A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Automatic memory leak detection
CN103455424A (zh) * 2013-09-18 2013-12-18 哈尔滨工业大学 基于VxWorks操作系统的动态内存泄漏检测方法及装置
CN105260314A (zh) * 2015-11-03 2016-01-20 上海斐讯数据通信技术有限公司 内存泄漏的监测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈健等: "《Linux实战教程》", 30 September 2007 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282430A (zh) * 2020-12-03 2021-08-20 延锋伟世通电子科技(南京)有限公司 一种防止嵌入式系统内存泄露的方法

Similar Documents

Publication Publication Date Title
US8522209B2 (en) Method and system for integrating profiling and debugging
US8601469B2 (en) Method and system for customizing allocation statistics
US7904493B2 (en) Method and system for object age detection in garbage collection heaps
US8356286B2 (en) Method and system for providing on-demand profiling infrastructure for profiling at virtual machines
US8667471B2 (en) Method and system for customizing profiling sessions
US7971010B2 (en) Mechanism for performing loitering trace of objects that cause memory leaks in a post-garbage collection heap
CN104182320B (zh) 一种监控内存泄漏的方法及装置
US7953772B2 (en) Method and system for inspecting memory leaks and analyzing contents of garbage collection files
US8589653B2 (en) Memory management method and computer using the method
US8229979B2 (en) Method and system for inspecting memory leaks
US7559065B1 (en) Methods and apparatus providing an event service infrastructure
US20100106926A1 (en) Second failure data capture problem determination using user selective memory protection to trace application failures
CN105278996A (zh) 一种日志采集方法、装置及日志服务系统
US9558055B2 (en) System level memory leak detection
JPH10232785A (ja) 不連続な実行時スタックを動的にサイジングするための方法及び装置
WO2010127983A1 (en) Virtual machine tool interface for tracking objects
CN105630534A (zh) 基于TrustZone架构的应用程序执行方法、装置和终端
CN103309796A (zh) 一种组件对象模型对象的监控方法和装置
US8713538B2 (en) Monitoring heap in real-time by a mobile agent to assess performance of virtual machine
US20120158801A1 (en) Determining whether a java object has been scan-missed by a garbage collector scan
CN106844207A (zh) 一种诊断内存泄漏的方法及设备
CN104778087B (zh) 一种信息处理方法以及信息处理装置
CN103699485A (zh) 应用程序调试方法和装置
US20090172368A1 (en) Hardware Based Runtime Error Detection
CN112035192B (zh) 支持组件热部署的Java类文件加载方法及装置

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613