首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 203 毫秒
1.
内存泄露是一种常见的系统安全问题。虚拟技术是云计算的关键技术,虚拟机环境下的内存泄露不容忽视。而基于虚拟机的内存泄露检测技术尚未成熟。分析虚拟机Xen内核源码中与内存分配有关的代码,提出一种动态检测虚拟机中内存泄露的方法。该方法记录应用程序对资源的申请、释放以及使用情况,插入监测代码,最终检测出内存泄露的代码。实验结果表明,该方法能够有效地检测Xen虚拟机中的内存泄露。  相似文献   

2.
动态内存分配为C/C++语言编程人员提供了极大的灵活性,但同时也带来了一个潜在的严重问题——内存泄露。与桌面系统相比,嵌入式系统处理能力弱、内存空间小、运行时间长,如果在程序运行期间发生内存泄露,将导致系统崩溃,造成不可预料的后果,因此需要在开发调试阶段尽早检测出造成内存泄露的代码。提出了一种基于动态检测技术和程序插装技术的嵌入式软件内存泄露分布式检测方法。该方法的实现思想是当程序在目标机运行时,插装代码自动截获内存操作函数,收集内存操作相关信息并把收集到的信息发送到服务器端处理,实现了嵌入式系统内存泄露的准确检测。实验结果证明,由于采用分布式技术进行信息处理,内存泄露检测效率得到了很大的提升。  相似文献   

3.
WINCE系统内存配置较小,嵌入式软件如果出现内存泄露问题,将会导致系统的可用内存不足,甚至出现系统崩溃。为此针对WINCE操作系统内存的管理和应用,通过引入一个在实时更新动态图的过程中出现内存泄露的案例,阐述了关于内存管理和内存应用的重要知识点,包括内存模型和内存分配方式,分析了在该案例中出现内存泄露的原因,提出了与案例中出现的内存泄露相似问题的解决方法,并针对一般情况下如何防止内存泄露作了简单介绍,最后详细阐述了案例中为了优化内存所做的工作,对编程者有很好的指导作用。  相似文献   

4.
一直以来内存泄露都是程序员们非常关心的一个大问题,通过借助一些工具,程序员可以查找到程序中存在的内存泄露的问题。内存溢出的出现会给程序员带来很多的烦恼。本文针对.NET环境中的内存泄露问题进行分析并指出应如何正确使用c#的垃圾回收机制。  相似文献   

5.
文中用VMI(虚拟机自省)技术实现了由外部对VM(虚拟机)内部内存大小的透明实时的监控。VMI技术在纯净的环境下记录虚拟机的内存量,用增量叠加的方法记录加入此域的内存泄露的程序对内存的影响。内存泄漏的堆积会最终消耗尽系统所有内存,因此内存泄漏是造成计算机安全事故的主要原因之一。本文实验通过开放源代码虚拟机监视器Xen,使用了xen内核的半虚拟化模式,由外部检测虚拟机进程的内存消耗量来判断应用程序是否有内存泄露。由于这种方式可以为用户提供独立、隔离的计算环境,不需要修改源程序或者对程序进行重新编译,不必有其它特殊硬件需求,系统性能损失较小并且有一定的通用性,因而在判断内存泄露是其它解决方案无法取代的。实验结果表明:对内存的监控数据证明了实验系统的有效性和可行性。  相似文献   

6.
自动化测试在测试内存泄露中的应用   总被引:1,自引:0,他引:1  
分析了内存泄露的发生原因和特点,研究了传统测试方法在测试内存泄露方面的缺陷,提出了自动化测试方法在测试内存泄露中的应用。用自动化测试技术代替繁重的手工测试,具有可重复性、一致性、可重用性的特点,可进行更多更频繁的测试。它可以解决一般工具无法检测的问题。给出了两个实例,形象地说明了自动化测试技术在软件测试中的优势。该方法对于结构复杂的大型应用软件具有非常好的测试效果。  相似文献   

7.
李伟  柳长安  芦东昕  徐立峰 《微机发展》2006,16(11):109-111
Windows Mobile 5.0是微软为智能移动终端推出的软件平台,特别在智能手机领域受到越来越广泛的应用;在基于Windows Mobile的产品设计中,内存泄露又是需要考虑的关键之一。文中解析了Windows Mobile平台上监测设备内存泄露的工具AppVerifier,并在模拟器上实现了监测应用程序内存泄露,进而发现使用AppVerifier存在的问题,并指出了使用中高效利用AppVerifier的方法。  相似文献   

8.
针对嵌入式软件中的内存泄露、内存写溢出等问题,提出嵌入式Linux平台下数据采集和测试分离的交叉测试方法,设计实现一个嵌入式软件动态内存的检测工具。该工具可以检测软件的内存泄露、内存写溢出、释放野指针和内存管理函数不匹配等问题,通过一个实例验证其有效性和可靠性。  相似文献   

9.
基于局部堆内存抽象表示的堆操作程序内存泄露检测   总被引:1,自引:0,他引:1  
堆操作程序通过共享易变数据结构可灵活地申请、合并、删除堆内存.这类程序的内存泄漏检测要求精确的域敏感的指针别名信息,变得尤其复杂和难以处理.针对这个问题,提出了基于"指针扩展类型"域敏感的堆内存抽象方法,对指针变量在形态上的排列关系进行抽象以支持堆的局部推理.首先,定义了各种基本语句的操作语义,然后基于该抽象方法采用前向数据流迭代算法提出了一种新的内存泄露检测算法.在Crystal编译框架下实现了面向C程序的内存泄漏检测原型工具Heapcheck,该工具支持复杂数据结构内指针型数据域上的内存泄露检测.在典型基准C程序上的实验结果分析表明,该方法与现有的技术相比在效率和精度上都具有优势.  相似文献   

10.
Linux下C语言程序内存泄漏的研究   总被引:1,自引:1,他引:0  
文章阐述了内存泄漏的概念、分类、危害以及内存泄露的常发场景,并给出了在Linux下使用Valgrind查找内存泄漏的方法。  相似文献   

11.
程序运行过程中一些不再被使用的对象未及时释放会引发内存泄漏问题,泄漏对象经过长期累积会降低系统性能,甚至导致系统崩溃。针对Java程序中的内存泄漏问题,提出了一种内存泄漏对象检测与度量方法。通过动态跟踪源程序的执行过程,周期性记录堆栈信息,并分析堆中可疑的泄漏对象。定义内存泄漏度计算方法,度量不同对象对程序泄漏的影响程度,从而确定产生泄漏的对象。最后选取两个开源程序进行验证,并与两种现有方法进行对比,结果表明该方法的泄漏检测率较高。  相似文献   

12.
C/C 语言中的动态内存管理机制自由且灵活,但动态内存的使用容易引入内存泄漏,导致系统性能降低甚至系统崩溃。为了更加有效的检测内存泄漏,提出了一个基于有界模型检测技术的C/C 程序内存泄漏检测方案MLD-CBMC。该方案以C/C 程序文件为输入,利用有界模型检测技术,对程序进行展开处理,加入内存泄漏性质,并利用可满足性模理论(SMT)对程序约束和性质组成的验证条件编码,使用SMT求解器对验证条件求解,将检测内存泄漏问题转换为求解可满足性问题,实现C/C 程序内存泄漏的检测。通过实验验证了方案的有效性,并与其他有界模型检测工具进行对比实验,实验证明方案对内存泄漏的检测能力更强。  相似文献   

13.
C程序内存泄漏智能化检测方法   总被引:1,自引:1,他引:0  
内存泄漏在采用显式内存管理机制的C语言中是一种常见的代码缺陷,内存泄漏的检测方法目前主要是静态分析与动态检测.动态检测开销大,且高度依赖测试用例;静态分析目前被学术界和工业界广泛应用,但是存在大量误报,需要人工对检测结果进行确认.内存泄漏静态分析的误报通常是由于对指针、分支语句和全局变量分析的不准确性导致的.提出了一种内存泄漏的智能化检测方法,通过使用机器学习算法学习程序特征与内存泄漏之间的相关性,构建机器学习分类器,并应用机器学习分类器进一步提高内存泄漏静态分析的准确性.首先构建机器学习分类器,然后通过静态分析方法构建从内存分配点开始的Sparse Value Flow Graph(SVFG),并从中提取内存泄漏相关特征,再使用规则和机器学习分类器进行内存泄漏的检测.实验结果显示,该方法在分析指针、分支语句和全局变量时是有效的,能够提高内存泄漏检测的准确性,降低内存泄漏检测结果的误报.最后,对未来研究的可行性以及面临的挑战进行了展望.  相似文献   

14.
Mobile applications usually can only access limited amount of memory. Improper use of the memory can cause memory leaks, which may lead to performance slowdowns or even cause applications to be unexpectedly killed. Although a large body of research has been devoted into the memory leak diagnosing techniques after leaks have been discovered, it is still challenging to find out the memory leak phenomena at first. Testing is the most widely used technique for failure discovery. However, traditional testing techniques are not directed for the discovery of memory leaks. They may spend lots of time on testing unlikely leaking executions and therefore can be inefficient. To address the problem, we propose a novel approach to prioritize test cases according to their likelihood to cause memory leaks in a given test suite. It firstly builds a prediction model to determine whether each test can potentially lead to memory leaks based on machine learning on selected code features. Then, for each input test case, we partly run it to get its code features and predict its likelihood to cause leaks. The most suspicious test cases will be suggested to run at first in order to reveal memory leak faults as soon as possible. Experimental evaluation on several Android applications shows that our approach is effective.  相似文献   

15.
内存泄漏故障静态分析研究   总被引:1,自引:0,他引:1  
目前研究人员主要采用静态测试技术实施对内存泄漏故障的检测,其基本思想就是依据待测程序的控制流图来设计特定的算法以检测内存泄漏问题,但这些方法的不足之处主要是控制流图的表示方式上未含有进一步可用信息,因此所设计的算法不能很好地执行该故障的检测任务.为此,定义了一种用于内存泄漏故障检测的控制流图,提出控制流图可达路径生成算法,然后根据生成的路径进行内存泄漏故障的检测与分析.实验证实,该方法取得了理想的效果.  相似文献   

16.
冯涛  宋成明 《微机发展》2006,16(7):123-125
Java语言的一个显著特点是它通过虚拟机和垃圾回收机制管理着大部分的内存事务,但是在Java程序中还是可能存在内存泄漏问题。文中首先对Java内存泄漏做一个简要的定义,接着围绕一个实例详细地介绍如何用工具检测Java内存泄漏,最后列举了一些典型的泄漏,以便读者在Java程序开发中尽量避免类似的内存泄漏。  相似文献   

17.
Memory leaks are recognized to be one of the major causes of memory exhaustion problems in complex software systems. This paper proposes a practical approach to detect aging phenomena caused by memory leaks in distributed objects Off-The-Shelf middleware, which are commonly used to develop critical applications. The approach, which is validated on a real-world case study from the Air Traffic Control domain, defines algorithms and ad hoc support tools to perform data filtering and to find the best trade off between experimentation time and statistical accuracy of aging trend estimates. Experiments show that fixing memory leaks is not always the key to solve memory exhaustion problems.  相似文献   

18.
关于JAVA语言内存泄漏问题的探讨   总被引:1,自引:0,他引:1  
随着越来越多的服务器程序采用Java技术,例如电信网管系统,服务器程序往往长期运行,因此Java的内存泄漏问题不容忽视。否则即使有少量泄漏,长期运行之后,系统将会面临崩溃的危险。文章通过分析Java内存回收机制的原理和内存泄漏的原因,提出了预防和检测内存泄漏的办法。  相似文献   

19.
随着越来越多的服务器程序采用Java技术,例如电信网管系统,服务器程序往往长期运行,因此Iava的内存泄漏问题不客忽视。否则即使有少量泄漏,长期运行之后,系统将会面临崩溃的危险。文章通过分析Java内存回收机制的原理和内存泄漏的原因.提出了预防和检测内存泄漏的办法。  相似文献   

20.
The migration of application logic to the client side of modern web applications and the use of JavaScript as the main language for client‐side development have made memory leaks in JavaScript an issue for web applications. Client‐side web applications communicate with the server asynchronously, remaining on the same web page during their lifetime. Thus, even minor memory leaks can eventually lead to excessive memory usage, negatively affecting user‐perceived response time and possibly causing page crashes. To detect memory leaks and guide developers in fixing the leaks quickly and easily, this paper introduces LeakSpot, a tool that creates a run‐time heap model by modifying the application code in a browser‐agnostic way to record object allocations, accesses, and references created to objects. LeakSpot reports those allocation sites causing the leaks instead of all the leaky allocation sites. It also identifies the locations in the code where leaked objects are accumulated, for example, the locations where a reference from a data structure is created but forgotten to be removed by the developer. To facilitate debugging and fixing the leaks, for every leaked object, LeakSpot reports all the locations in the code that create a reference to the object. To confirm usefulness and efficacy of LeakSpot experimentally, we have used LeakSpot to find and fix four memory leaks in a JavaScript benchmark suite and in open‐source web applications. LeakSpot is also shown to be effective in pointing out the potential causes of three leaks in large and popular web applications. Copyright © 2016 John Wiley & Sons, Ltd.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号