CN102073591A - 嵌入式***内存占用状况检测方法及*** - Google Patents
嵌入式***内存占用状况检测方法及*** Download PDFInfo
- Publication number
- CN102073591A CN102073591A CN2011100081274A CN201110008127A CN102073591A CN 102073591 A CN102073591 A CN 102073591A CN 2011100081274 A CN2011100081274 A CN 2011100081274A CN 201110008127 A CN201110008127 A CN 201110008127A CN 102073591 A CN102073591 A CN 102073591A
- Authority
- CN
- China
- Prior art keywords
- memory
- function
- embedded system
- internal memory
- occupancy detection
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式***内存占用状况检测方法和***,嵌入式***内存占用状况检测方法包括:S1.接管内存管理函数,进行函数调用;S2.跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请、释放的精确位置;S3.采用双向链表的方式统计所述内存,检测内存占用情况;S4.显示所述的内存占用情况。本发明还公开了嵌入式***内存占用状况检测***。本发明提供的一种嵌入式***内存占用状况检测方法及***,接管内存管理函数,跟踪当前函数的调用信息,能准确定位内存泄露发生的位置,显示内存占用情况,通用性强,极大地方便了内存使用问题的检测。
Description
技术领域
本发明涉及嵌入式软件领域,尤其涉及一种嵌入式***内存占用状况检测方法及***。
背景技术
目前,随着信息技术的发展,计算机被广泛应用于所有的领域中,其中,计算机内存的使用常常会影响一个***运行的效率,如果存在内存泄露或是内存出错情况,将会大大影响***的效率。所谓的内存泄露,一般是堆内存的泄露,堆内存,是指应用程序在运行过程中,利用一些特定的函数从堆中分配的,而在使用完毕后再通过特定的函数加以释放的内存,如果应用程序在使用完后没有将其释放,则这块内存就不能再次使用,就认为这块内存泄露了。
在X86平台,采用虚拟机的技术,对整个程序运行内存占用情况进行完整的监控,可以得到全部的相关信息,且,大部分检测内存工具都是基于X86体系结构,比如:BoundsChecker、Purify等,功能很强大,但,该类检测内存工具对***资源的需求相当大;即:需要占用大量的内存及CPU资源,如:监控一个服务器程序,需要运行几天,几周甚至几个月,若存在内存泄露或者出错情况,不及时释放内存,会造成***性能低、效率慢,甚至会造成***的崩溃。
在嵌入式软件中,嵌入式***内存小,CPU运行速度慢,发生内存泄露会更严重影响嵌入式***的性能,因此,应采用有效的工具对其内存占用情况进行检测,但是,大部分的检测工具仅提供发生内存泄露点的最后一个函数的信息,没有提供函数调用链。无法确切地知道在哪介函数调用链里发生了内存泄露,无法精确定位问题发生。GCC内存管理函数里加入hook,在运行时,将内存使用信息输出到一个文件,最后进行统计,但仍无法准确得知内存占用信息;有些工具使用GCC的backtrace函数,得到函数调用链,但这个函数在是和芯片体系相关的,通用性不强,在一些芯片体系,比如:mips体系使用这个函数无法得到这个信息。
发明内容
本发明主要解决的技术问题是提供一种能在linux的嵌入式***运行、通用性强、耗用资源小、能准确定位内存泄露发生的位置、显示内存占用情况的嵌入式***内存占用状况检测方法及***。
为解决上述技术问题,本发明采用第一个技术方案是:提供一种嵌入式***内存占用状况检测方法,包括
S1.接管内存管理函数,进行函数调用;
S2.跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请,释放的精确位置;
S3.采用双向链表的方式统计所述内存,检测内存占用情况;
S4.显示所述的内存占用情况。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述步骤S1包括:
S11.截获内存管理函数的调用;
S12.回调所述的内存管理函数。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述的回调所述的内存管理函数采用dlopen的方式进行。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述的步骤S2中,采用GCC的finstrument-functions机制跟踪所述的函数调用链。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述内存占用情况包括:程序运行结束时,所述链表中还存在节点,所述的节点为没有被释放的内存。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述的没有被释放的内存包括永久占用的内存以及内存泄露。
其中,在本发明的嵌入式***内存占用状况检测方法中,所述内存占用情况包括:释放了一个内存,若指针在所述的链表不存在,则表明多归还一个内存或野指针。
为解决上述技术问题,本发明采用第二个技术方案是:提供一种嵌入式***内存占用状况检测***,包括:
接管内存管理模块:用于接管内存管理函数,进行函数调用;
跟踪函数调用模块:与所述的接管内存管理模块相连,用于跟踪所述函数调用,以便定位内存申请,释放的精确位置;
检测内存占用模块:与所述的跟踪函数调用模块相连,用于采用双向链表的方式统计所述内存,检测内存占用情况;
显示内存占用情况模块:与所述的检测内存占用模块相连,用于显示所述的内存占用情况。
其中,在本发明的嵌入式***内存占用状况检测***中,所述的接管内存管理模块包括:
截获单元:用于截获内存管理函数的调用;
回调单元:与所述的截获单元相连。用于回调所述的内存管理函数。
本发明的有益效果是:区别于现有技术的内存检测工具不适用嵌入式***软件,且无法准确定位内存在何处发生了泄露的不足。本发明提供一种嵌入式***内存占用状况检测方法及***,接管内存管理函数,跟踪当前函数的调用信息,准确定位内存泄露发生的位置,显示内存占用情况,通用性强,极大地方便了内存使用问题的检测。
附图说明
图1是本发明第一实施例嵌入式***内存占用状况检测方法流程图;
图2是本发明第一实施例嵌入式***内存占用状况检测方法中内存管理函数链接流程图;
图3是本发明第一实施例嵌入式***内存占用状况检测方法中内存管理函数调用流程图;
图4是本发明第一实施例嵌入式***内存占用状况检测方法中内存管理函数调用总体流程图;
图5是本发明第一实施例嵌入式***内存占用状况检测方法中单个线程调用链的流程图;
图6是本发明第一实施例嵌入式***内存占用状况检测方法中多个线程函数调用链的方框图;
图7是本发明第一实施例嵌入式***内存占用状况检测方法中内存块组织结构图;
图8是本发明第二实施例嵌入式***内存占用状况检测***结构方框图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
在信息技术中,计算机内存占用常常影响一个***的性能,特别是内存泄露时出严重影响***,不仅会导致空间的浪费,***性能降低,而且会引起复杂的内存耗尽,再者,一个内存泄露程序可能用完了非常多的内存而引起了其它的程序出错,而用户不知错误来自哪里,另外,一个看上去危害不大的内存泄露,可能是另一个问题的先兆,因此,要尽量避免内存泄露现象的发生。
请参阅图1,在本发明的第一实施例中,本发明的嵌入式***内存占用状况检测方法包括:
S1.接管内存管理函数,进行函数调用;
S2.跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请,释放的精确位置;
S3.采用双向链表的方式统计所述内存,检测内存占用情况;
S4.显示所述的内存占用情况。
其中,本实施例中,所述步骤S1包括:
S11.截获内存管理函数的调用;
请参阅图2,步聚T1:检索内存管理函数,先于目标文件(*.o)里寻找,如果找到了该内存管理函数,则调用目标文件(*.o)的内存管理函数;即如图2中的步骤T2及步骤T21,如果查找失败,则于库函数里寻找,如果找到了,则调用库文件的内存管理函数,如图中所述的T3及步骤T31,如果仍没有找到内存管理函数,则查找失败。链接出错,如图中所述的步骤T4。
需要说明的是:一个程序的编译过程包括:预处理(Pre-Processing)、编译(Compling)、汇编(Assembling)、链接(Linking)这4个过程。链接是将程序的不同部分的数据和代码组合成一个可执行文件的过程。一个程序运行需要的模块可能分布在目标文件(*.o)和静态库(*.a)或动态库文件(*.so)里。
gcc在链接的时候,一个符号出现在.o文件和lib*.a/lib*.so文件里时,会先链接.o文件里的符号,实现了malloc/free/realloc/calloc的同名函数后,该函数的调用的截获就成功进行了。
S12.回调所述的内存管理函数。
请参阅图3,在步骤A1中,截获了***内存管理函数后,进入步取A2,调用自定义的内存管理函数;由于截获***的内存管理函数的目的是为了对内存调用进行统计,最终的内存函数还是要调用***的内部的函数进行。在自定义的函数里,还需要调用***内存管理;因此进入步聚A3,利用dlopen打开原来的***库libc.so,打开了***库libc.so后,进入步骤A4,用dlsym在***库libc.so里查找内存管理函数的入口,进入入口后就可以进入步骤A5:调用***库内存管理函数了。
请参阅图4,一个应用程序11截获原来的内存管理函数后,于静态链接时替换成自定义内存管理12后利用dlopen进行***内存管理13。
在本实施例中,步骤S2包括:跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请、释放的精确位置。
具体是:采用gcc的-finstrument-functions机制。一旦指定了这个参数,在编译的时候,由自定义的方式进行,每次进入某个函数前,都会先***对_cyg_profile_func_enter这个函数的调用;在退出某个函数前,则***对_cyg_profile_func_exit的调用。在进出函数的时候,线程中的函数的地址保存起来,请参阅图5及图6,其中,图5是单个线程函数调用堆栈图,图6是多个线程函数调用堆栈图,进入函数Fun1、函数Fun2、函数Fun3都要进行函数_cyg_profile_func_enter以_cyg_profile_func_exit的调用,其中,这两个函数原型如下:
void_cyg_profile_func_enter(void*func_address,void*call_site);
void_cyg_profile_func_exit(void*func_address,void*call_site);
可以看到,这个函数有两个参数,一个是调用者的函数地址,另外一个则是具体在哪一行发生调用。
这里,用一个或多个函数调用堆栈保存函数的地址,这样就能知道函数在调用的时候发生了什么事情。
步骤S3.采用双向链表的方式统计所述内存,检测内存占用情况,具体是:
在上文已经截获了***的内存调用并保存函数的地址,这里需要对***的内存使用进行实时统计,这里采用双向链表的方式,在自定义的内存管理函数里,将***调用的所有内存调用情况组织起来,请参阅图6,其中,“Head”为双向链表的头指针;“Pre”为指向前一个节点的指针;“Next”为指向下一个节点的指针;“调用点的函数调用链”为记录上文提到的线程的函数调用链。“Check”为该节点的合法性检测;数据值为函数调用链字段的数值;如果这个节点的函数调用链的数值不为check字段的值,这个节点出错。“实际的数据”为保存用户申请的内存的实际空间。从图7中可以看出,一个应用程序使用内存的情况通过双向链表的方式连续不断地统计出来,从而使人们可以检测内存占用情况。
步骤S4:显示所述的内存占用情况。
具体是:显示所有的内存使用情况,包括正常使用情况以及内存出错的情况,特别地,对于内存出错的检测,这里可以检测出两种内存出错的情况:
如果程序运行结束时候,链表还存在节点,这些节点就是未被释放的内存;其中,未被释放的内存有两种情况:一种是正常情况下永远使用的内存,另一种是内存泄露。
如果释放了一块内存后,但这个指针在链表中不存在。这种情况有两种错误导致的:一是多归还了个内存,即:double free,二是野指针。
请参阅图8,在本发明的第一实施例中,本发明的嵌入式***内存占用状况检测***包括:
接管内存管理模块10:用于接管内存管理函数,进行函数调用;
跟踪函数调用模块20:与所述的接管内存管理模块10相连,用于跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请、释放的精确位置;
检测内存占用模块30:与所述的跟踪函数调用模块20相连,用于采用双向链表的方式统计所述内存,检测内存占用情况;
显示内存占用情况模块40:与所述的检测内存占用模块30相连,用于显示所述的内存占用情况。
在本实施例中,所述的接管内存管理模块10,包括:
截获单元:用于截获内存管理函数的调用;及
回调单元:与所述的截获单元相连。用于回调所述的内存管理函数。
本发明提供一种嵌入式***内存占用状况检测方法及***,接管内存管理函数,跟踪当前函数的调用信息,准确定位内存泄露发生的位置,显示内存占用情况,极大地方便了内存使用问题的检测。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种嵌入式***内存占用状况检测方法,基于linux体系架构,其特征在于:包括以下步骤:
S1.接管内存管理函数,进行函数调用;
S2.跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存申请、释放的精确位置;
S3.采用双向链表的方式统计内存,检测内存占用情况;
S4.显示所述的内存占用情况。
2.如权利要求1所述的嵌入式***内存占用状况检测方法,其特征在于:所述步骤S1包括:
S11.截获内存管理函数的调用;
S12.回调所述的内存管理函数。
3.根据权利要求2所述的嵌入式***内存占用状况检测方法,其特征在于:所述的回调内存管理函数采用dlopen的方式进行。
4.根据权利要求1所述的嵌入式***内存占用状况检测方法,其特征在于:所述的步骤S2中,采用GCC的finstrument-functions机制跟踪所述的函数调用链。
5.根据权利要求1所述的嵌入式***内存占用状况检测方法,其特征在于:所述内存占用情况包括:程序运行结束时,所述双向链表中若存在节点,所述的节点为没有被释放的内存。
6.根据权利要求5所述的嵌入式***内存占用状况检测方法,其特征在于:所述的没有被释放的内存包括永久占用的内存以及内存泄露。
7.根据权利要求1所述的嵌入式***内存占用状况检测方法,其特征在于:所述内存占用情况包括:释放了一个内存,若指针在所述的链表不存在,则表明多归还一个内存或野指针。
8.一种嵌入式***内存占用状况检测***,基于linux体系架构,其特征在于:包括:
接管内存管理模块:用于接管内存管理函数,进行函数调用;
跟踪函数调用模块:与所述的接管内存管理模块相连,用于跟踪所述函数调用,获取函数运行时线程的调用链,以便定位内存;
检测内存占用模块:与所述的跟踪函数调用模块相连,用于采用双向链表的方式统计所述内存,检测内存占用情况;
显示内存占用情况模块:与所述的检测内存占用模块相连,用于显示所述的内存占用情况。
9.根据权利要求8所述的嵌入式***内存占用状况检测***,其特征在于:所述的接管内存管理模块包括:
截获单元:用于截获内存管理函数的调用;
回调单元:与所述的截获单元相连。用于回调所述的内存管理函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100081274A CN102073591A (zh) | 2011-01-14 | 2011-01-14 | 嵌入式***内存占用状况检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100081274A CN102073591A (zh) | 2011-01-14 | 2011-01-14 | 嵌入式***内存占用状况检测方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102073591A true CN102073591A (zh) | 2011-05-25 |
Family
ID=44032137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100081274A Pending CN102073591A (zh) | 2011-01-14 | 2011-01-14 | 嵌入式***内存占用状况检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073591A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279797A (zh) * | 2011-08-30 | 2011-12-14 | 深圳宝德科技集团股份有限公司 | 一种检测内存泄漏的方法及*** |
CN102685590A (zh) * | 2012-05-14 | 2012-09-19 | 深圳市九洲电器有限公司 | 机顶盒内存管理方法及装置 |
CN102968335A (zh) * | 2012-10-25 | 2013-03-13 | 东莞宇龙通信科技有限公司 | 终端和终端内存管理方法 |
CN103123604A (zh) * | 2011-11-18 | 2013-05-29 | 苹果公司 | 跟踪数据处理***的内存使用的方法 |
CN103279360A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种用基于Linux命令的程序获取内存信息的方法 |
WO2013149530A1 (zh) * | 2012-04-01 | 2013-10-10 | 腾讯科技(深圳)有限公司 | 显示信息的方法、移动终端和计算机可读存储介质 |
CN104572460A (zh) * | 2014-12-30 | 2015-04-29 | 大唐移动通信设备有限公司 | 一种内存泄露的检测方法和装置 |
CN104778087A (zh) * | 2014-01-09 | 2015-07-15 | ***通信集团山东有限公司 | 一种信息处理方法以及信息处理装置 |
CN104965779A (zh) * | 2015-05-22 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种基于PoolMon的内存泄露检测和定位的方法及装置 |
CN106484580A (zh) * | 2016-10-21 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种内存检测方法、装置及*** |
CN106610892A (zh) * | 2015-10-23 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 内存泄漏检测方法和装置 |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
CN107277226A (zh) * | 2017-05-11 | 2017-10-20 | 珠海金山网络游戏科技有限公司 | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 |
CN110908865A (zh) * | 2019-11-15 | 2020-03-24 | 珠海豹趣科技有限公司 | 内存泄漏监控方法、装置及电子设备 |
CN113918892A (zh) * | 2021-12-13 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种内存使用情况统计方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及*** |
CN101470632A (zh) * | 2007-12-24 | 2009-07-01 | 华为软件技术有限公司 | 共享内存管理方法及装置 |
-
2011
- 2011-01-14 CN CN2011100081274A patent/CN102073591A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及*** |
CN101470632A (zh) * | 2007-12-24 | 2009-07-01 | 华为软件技术有限公司 | 共享内存管理方法及装置 |
Non-Patent Citations (8)
Title |
---|
《北京化工大学学报》 20000930 潘立登等 有效实现内存管理的方法 99 1-9 第27卷, 第03期 * |
《计算机工程》 20070105 高海昌等 Linux下可执行文件的动态内存检测设计与实现 74-76 1-9 第33卷, 第01期 * |
《计算机工程》 20091020 刘发贵等 嵌入式软件动态内存检测工具的设计与实现 45-46 1-9 第35卷, 第20期 * |
刘发贵等: "嵌入式软件动态内存检测工具的设计与实现 ", 《计算机工程》 * |
刘发贵等: "嵌入式软件动态内存检测工具的设计与实现", 《计算机工程》, vol. 35, no. 20, 20 October 2009 (2009-10-20), pages 45 - 46 * |
宋新爱等: "C程序的函数调用可视化研究", 《软件导刊》 * |
潘立登等: "有效实现内存管理的方法 ", 《北京化工大学学报》 * |
潘立登等: "有效实现内存管理的方法", 《北京化工大学学报》, vol. 27, no. 03, 30 September 2000 (2000-09-30), pages 99 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279797A (zh) * | 2011-08-30 | 2011-12-14 | 深圳宝德科技集团股份有限公司 | 一种检测内存泄漏的方法及*** |
CN103123604A (zh) * | 2011-11-18 | 2013-05-29 | 苹果公司 | 跟踪数据处理***的内存使用的方法 |
WO2013149530A1 (zh) * | 2012-04-01 | 2013-10-10 | 腾讯科技(深圳)有限公司 | 显示信息的方法、移动终端和计算机可读存储介质 |
CN103365760A (zh) * | 2012-04-01 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 显示信息的方法和移动终端 |
CN102685590A (zh) * | 2012-05-14 | 2012-09-19 | 深圳市九洲电器有限公司 | 机顶盒内存管理方法及装置 |
CN102685590B (zh) * | 2012-05-14 | 2014-12-10 | 深圳市九洲电器有限公司 | 机顶盒内存管理方法及装置 |
CN102968335A (zh) * | 2012-10-25 | 2013-03-13 | 东莞宇龙通信科技有限公司 | 终端和终端内存管理方法 |
CN103279360A (zh) * | 2013-06-09 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种用基于Linux命令的程序获取内存信息的方法 |
CN104778087A (zh) * | 2014-01-09 | 2015-07-15 | ***通信集团山东有限公司 | 一种信息处理方法以及信息处理装置 |
CN104572460A (zh) * | 2014-12-30 | 2015-04-29 | 大唐移动通信设备有限公司 | 一种内存泄露的检测方法和装置 |
CN104965779A (zh) * | 2015-05-22 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种基于PoolMon的内存泄露检测和定位的方法及装置 |
CN106610892A (zh) * | 2015-10-23 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 内存泄漏检测方法和装置 |
CN106610892B (zh) * | 2015-10-23 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 内存泄漏检测方法和装置 |
CN107085548A (zh) * | 2016-02-16 | 2017-08-22 | 阿里巴巴集团控股有限公司 | 一种监控应用程序内存的方法、装置及电子设备 |
CN106484580A (zh) * | 2016-10-21 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种内存检测方法、装置及*** |
CN106484580B (zh) * | 2016-10-21 | 2019-10-18 | 腾讯科技(深圳)有限公司 | 一种内存检测方法、装置及*** |
CN107277226A (zh) * | 2017-05-11 | 2017-10-20 | 珠海金山网络游戏科技有限公司 | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 |
CN110908865A (zh) * | 2019-11-15 | 2020-03-24 | 珠海豹趣科技有限公司 | 内存泄漏监控方法、装置及电子设备 |
CN113918892A (zh) * | 2021-12-13 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种内存使用情况统计方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073591A (zh) | 嵌入式***内存占用状况检测方法及*** | |
US8196116B2 (en) | Tracing objects in object-oriented programming model | |
US20100333110A1 (en) | Deadlock detection method and system for parallel programs | |
US10241894B2 (en) | Data-scoped dynamic data race detection | |
CN103064784B (zh) | 面向Xen环境的运行时内存泄漏检测方法及其实现*** | |
US20140365834A1 (en) | Memory management tools | |
US7992146B2 (en) | Method for detecting race conditions involving heap memory access | |
US20140281726A1 (en) | Bottleneck Detector Application Programming Interface | |
CN102063328B (zh) | 一种用于检测中断驱动型程序数据竞争的*** | |
CN102681938A (zh) | 一种内存泄漏检测方法及装置 | |
US20210157711A1 (en) | System and method for controlled data extraction in computer networks | |
US7844977B2 (en) | Identifying unnecessary synchronization objects in software applications | |
WO2015027403A1 (en) | Testing multi-threaded applications | |
CN102301343A (zh) | 软件监测方法、装置以及*** | |
Cai et al. | LOFT: redundant synchronization event removal for data race detection | |
Huang et al. | Finding schedule-sensitive branches | |
CN109885489B (zh) | 驱动程序中数据竞争检测方法及装置 | |
US8230271B2 (en) | Detecting software race conditions | |
US20100174711A1 (en) | Concurrency object classification | |
US9971670B2 (en) | Detecting uninitialized memory references | |
US7657792B2 (en) | Identifying race conditions involving asynchronous memory updates | |
US9424164B2 (en) | Memory error tracking in a multiple-user development environment | |
CN100470683C (zh) | 嵌入式***动态存储错误静态检测的实现方法 | |
US9092369B2 (en) | Tracking specific Java native interface invocations of system and library calls | |
CN110187884B (zh) | 一种多线程应用场景下的访存指令插桩优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110525 |