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

2.
内存泄漏是C/C++程序的一种常见的、难以发现的缺陷,一直困扰着软件开发者,尤其是针对长时间运行的程序或者系统软件,内存泄漏的后果十分严重.针对内存泄漏的检测,目前主要有静态分析和动态测试两种方法.动态测试实际运行程序,具有较大开销,同时依赖测试用例的质量;静态分析技术及自动化工具已经被学术界和工业界广泛运用于内存泄漏缺陷检测中,然而由于静态分析采取了保守的策略,其结果往往包含数量巨大的误报,需要通过进一步人工确认来甄别误报,但人工确认静态分析的结果耗时且容易出错,严重限制了静态分析技术的实用性.本文提出了一种基于混合执行测试的静态内存泄漏警报的自动化确认方法.首先,针对静态分析报告的目标程序中内存泄漏的静态警报,对目标程序进行控制流分析,并计算警报的可达性,形成制导信息;其次,基于警报制导信息对目标程序进行混合执行测试;最后,在混合执行测试过程中,监控追踪内存对象的状态,判定内存泄漏是否发生,对静态警报进行动态确认并分类.实验结果表明该方法可以对静态内存泄漏警报进行有效的分类,显著降低了人工确认的工作量.实验详情参见:http://ssthappy.github.io/memleak/.  相似文献   

3.
高频内存分配下内存泄露检测的性能提升方法   总被引:1,自引:0,他引:1       下载免费PDF全文
侯朋朋  武延军  谢沛东 《计算机工程》2013,(11):295-298,302
现有主流轻量级内存泄露检测工具,如MemWatch和MemLeak等在高频内存分配下存在效率较低等性能缺陷。为此,提出一种提升内存泄露检测工具性能的方法。运用该方法对开源工具MemLeak进行修改,将修改后的工具用于大数据存储系统Redis的内存泄漏检测。基于开源软件Redis的实用性测试结果表明,该方法具有较好的可用性与实用性。  相似文献   

4.
内存泄漏是软件系统中常见的一种错误,会持续消耗内存,致使系统运行效率下降,甚至导致系统崩溃。内存泄漏的检测工具主要可以分为两类:一类是使用基于程序扫描分析技术的静态工具;另一类则是监视实时内存分配状态进行判别的动态工具。如何评估工具检测内存泄漏的能力,相关的标准并不明确。通过对内存泄漏的认识与了解,对相关工具能力进行了调研与分析,提出了一个内存泄漏工具的评估标准。  相似文献   

5.
为了高效地管理内存,防止内存泄漏、越界访问等问题的出现,在分析传统动态内存管理机制的基础上,提出了一种基于Windows虚拟内存管理的高效动态内存管理机制.通过创建内存管理器来维护虚拟地址空间和处理内存申请和释放请求,改进了传统动态内存分配与回收算法,并在VC++6.0开发平台上实现了该动态内存管理机制.测试结果分析表明,该方法有效降低了申请与释放内存的时间耗费,减少了内存碎片的产生,提高了动态内存管理效率.  相似文献   

6.
Android应用程序的主体采用Java编程语言实现,Java语言的一个显著特点是它通过Java虚拟机和垃圾回收机制管理大部分的内存事务,但是在Java程序中不可避免地存在着内存泄漏的问题。本文从造成Android应用程序内存泄漏的原因入手,对内存泄漏进行检测和定位。阐述了在编写应用程序时规避内存泄漏的方法,并分别介绍了一种内存监测工具和一种内存分析工具的使用方法。  相似文献   

7.
一种混合式内存泄漏静态检测方法   总被引:1,自引:0,他引:1  
内存泄漏是导致系统性能降低的重要问题.提出一种基于模型检测算法的内存泄漏静态检查方法TMC.该方法依据程序的控制流图构建对应于程序执行的有限状态自动机,进而在此基础上应用模型检测算法分析程序中可能存在的内存泄漏.论文利用几个典型的程序实例详细说明了TMC的工作原理,并通过基于内存操作密集的测试程序集PtrDist的实验对TMC进行了验证.实验结果表明,TMC能够显著提升内存泄漏分析的精度.  相似文献   

8.
在航天领域中,安全关键的大型实时软件系统往往直接影响到任务成败,一般难以全面检测、分析或避免内存泄漏等常见内存错误。定义了实时软件的12种典型内存故障模式,提出了一种基于C++代码插装的实时软件内存错误快速分析方法。该方法通过对C++源代码进行静态分析,获取指针变量相关信息;通过C++代码插装和运行不同测试用例,实时收集统计C++指针对象的分配、释放、赋值、c-use和p-use使用情况,结合实时软件的典型内存故障模式进行分析,并自动生成详情报告。应用案例表明,该方法能够高效快捷地发现实时软件潜在的典型内存错误,从而有效提高软件质量。  相似文献   

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

10.
C语言作为安全关键软件的主要实现语言,其存在的内存泄漏缺陷具有很高的隐蔽性和危害性,如何保证内存泄漏检测的准确性和高效性是一大挑战。静态分析具有直接分析源码、能够较早发现软件错误,从而降低修复代价的优势。基于静态分析技术,提出了一种基于路径敏感的值流分析的内存泄漏检测方法,首先进行指针分析生成精确指向信息;然后基于指向信息构建值流约束,执行可达性分析以识别程序中的泄漏路径;最后借助指针与内存地址的有效生命周期进行验证。在典型基准C程序上的实验结果分析表明,本文方法与现有技术相比在效率和精度上都具有一定优势。  相似文献   

11.
本文对"Cache-主存"和"主存-辅存"这两种存储层次依据的原理和基本思想、引入的目的、硬件组成、失效开销、映像规则、查找方法、替换算法、写策略等多个方面进行了对比分析。以加深对存储层次的理解,提高对层次结构设计思想的认识。  相似文献   

12.
本文论述了存储器分级结构,即cache—内存—外存三级结构的构成及作用,并说明了这种分级结构在微机中的应用现状。  相似文献   

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

14.
常铁原  刘娜  陈文军 《计算机工程》2007,33(9):82-83,86
在μC/OSII中,当应用任务在申请到的内存块中产生了非法指针,并且指针地址指向了空闲内存块头结构区时(前几个字节),空闲链表将会被破坏。为解决这一隐患,将控制信息与用户空间独立存放。该文通过扩展内存块定位字节至16位,得到一种能够区分1 024个不同内存块的一级内存管理算法。  相似文献   

15.
SQLServer是一个数据库平台,提供数据库服务,是大型管理系统中数据层实现的重要工具。为充分发挥设计效能,达到最佳运作效果,需要对计算机硬、软件系统进行较为完备的性能测试与配置设置,特别是对数据库内存进行配置:  相似文献   

16.
内存泄漏故障是一个程序员所必须关心的问题之一。通过对内存泄漏及其相关检测技术的研究,提出面向类型的动态内存泄漏检测的概念,使泄漏检测具有较高的实时性,大大降低由于内存泄漏检测而导致CPU占用时间的急剧变化值,并在Linux下验证了算法的真实有效性。  相似文献   

17.
Windows 9X系统下物理地址的直接存取   总被引:1,自引:0,他引:1  
在设计硬件外设扩展卡时,一般都要涉及与外设的通信问题。由于Windows9X系统的内存管理采用水平存储模式(FLATMemoryModel),其线性地址空间和物理地址空间是分离的,使得在应用程序中无法直接得到存储器的物理地址。文章详细探讨了在Ring0特权下将物理地址映射到线性空间的可行性,并给出了一种实现方法。另外,还介绍了如何在应用程序中动态加载VxD的方法及两者之间的通信方式。  相似文献   

18.
提出了利用中间业务平台来改善行业业务系统的工作效率的设想。介绍了平台的系统结构和工作流程,并阐述了在平台的设计过程中如何以共享内存和信号量等UNIX底层机制,构造出高效率、高并发度的解决方案。  相似文献   

19.
联想记忆与人工神经网络   总被引:1,自引:0,他引:1  
联想记忆是人类记忆的基本方式,本文通过对人类联想记忆的本质及其规律的分析,讨论了如何用人工神经网络的模型来实现这种记忆形式,同时也指出了这种模拟的不足之处及需要解决的问题。  相似文献   

20.
Linux下面向函数的动态内存泄漏监测   总被引:4,自引:1,他引:4  
动态内存泄漏是一个严重的编程错误,可以导致程序的错误行为。由于定位内存泄漏发生的位置是困难的,一些工具已被开发出来辅助程序员找出内存泄漏。论文提出了面向函数的动态内存泄漏监测的概念,阐述了它的必要性和有效性,并给出了在Linux下的实现。  相似文献   

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

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

京公网安备 11010802026262号