内存泄漏检测方法有哪些?智能化检测方法能否提高准确性?

检测维修 0 149

内存泄漏是C语言显式内存管理中常见的编程错误,检测手段当前以静态分析和动态检测为主,动态检测成本高且非常依赖测试案例,静态分析虽被学术界和工业界普遍采用,却存在许多错误报告,需要人工核实结果,静态分析产生错误报告通常源于指针、分支语句和全局变量分析不够精确,设计了一种内存泄漏智能检测方案,借助机器学习算法探究程序特征与内存泄漏的关联性,建立机器学习分类模型,并运用该模型提升静态分析的精确度,首先建立机器学习分类模型,接着通过静态分析从内存分配点出发构建Sparse Value Flow Graph(SVFG),从中提取与内存泄漏相关的特征,再借助规则和机器学习分类模型执行内存泄漏检测,实验表明,该方案在分析指针、分支语句和全局变量时具备实效性,能增强内存泄漏检测的精确度,减少错误报告,最后探讨了未来研究的可能性和挑战。

内存泄漏是C语言程序中常见的代码错误,这类程序采用显式内存管理机制。目前,检测内存泄漏的主要方法有静态分析和动态检测。动态检测存在较大开销,并且高度依赖测试用例。静态分析虽被学术界和工业界广泛使用,但会产生大量误报,需要人工确认。指针、分支语句和全局变量的分析不精确会导致静态分析内存泄漏时出现误报。本研究提出了一种智能检测内存泄漏的方法。通过运用机器学习算法,学习程序特征与内存泄漏之间的关联,构建机器学习分类器,并将其应用于提升静态分析内存泄漏的准确性。首先,训练机器学习分类器。接着,借助静态分析构建从分配开始的稀疏值流图,从稀疏值流图中提取与内存泄漏相关的特征。最后,通过规则和机器学习分类器检测内存泄漏。实验结果表明,该方法在分析指针、分支语句和全局变量方面有效,能够减少内存泄漏检测的误报。本文最后阐述了未来研究的可行性及面临的挑战。

PDF全文下载地址:

机器学习算法内存泄漏检测_c#内存泄漏检测工具_C语言内存泄漏静态分析

这个网址是一个期刊文章的链接,它提供了该文章的PDF版本,文章编号是5715,可以在官网上找到这个资源

相关推荐: