当前位置: 首页 > 专利查询>清华大学专利>正文

一种基于配对资源管理函数的自适应挖掘和分析方法技术

技术编号:10248429 阅读:100 留言:0更新日期:2014-07-24 02:45
本发明专利技术提供一种基于配对资源管理函数的自适应挖掘和分析方法,包括:S1:分离出源码使用接口函数;S2:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类;S3:统计正常执行和异常处理路径中接口函数成对出现的频度;S4:根据所设定阈值过滤低频次不可信的配对函数;S5:根据过滤后的配对函数检测源码中的使用违例。本发明专利技术能够自动从源码中挖掘配对函数,并根据配对函数对源码进行检测。

【技术实现步骤摘要】
【专利摘要】本专利技术提供,包括:S1:分离出源码使用接口函数;S2:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类;S3:统计正常执行和异常处理路径中接口函数成对出现的频度;S4:根据所设定阈值过滤低频次不可信的配对函数;S5:根据过滤后的配对函数检测源码中的使用违例。本专利技术能够自动从源码中挖掘配对函数,并根据配对函数对源码进行检测。【专利说明】
本专利技术涉及计算机领域,具体涉及。
技术介绍
在计算机大型软件系统中,存在大量的函数使用规则,其中一大类即为两个函数针对同一资源执行相反的功能,在本方法中,称之为配对函数。由于大型软件文档的缺失,分工开发的人员众多等原因,使得该类软件中存在大量的违例和配对函数的使用相关。配对函数作用在同一类资源上,并执行相关的功能,一般是接口提供者已经实现,一对配对函数中,一个完成资源的申请,另一个完成资源的释放,但是使用者仅关心功能的实现,可能对接口使用和规范不熟练,在异常处理中,对申请的资源没有及时释放,从而造成内核泄露、死锁等问题。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供,能够自动从源码中挖掘配对函数,并根据配对函数对源码进行检测。(二)技术方案为了达到以上目的,本专利技术通过以下技术方案予以实现:,该方法包括:S1:分离出源码使用接口函数;S2:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类;S3:统计正常执行和异常处理路径中接口函数成对出现的频度;S4:根据所设定阈值过滤低频次不可信的配对函数;S5:根据配对函数检测源码中的使用违例。优选地,所述源码使用接口函数包括:大型操作系统软件中提供给驱动程序使用的内核扩展函数接口,以及大型软件分层设计实现中为上层提供的资源管理接口。优选地,步骤S2具体包括:根据函数返回值进行错误判定,发生错误时,调用的函数均为异常处理路径中的函数,而执行成功的函数则处于正常执行路径中。优选地,步骤S3具体包括:对于正常执行路径和异常处理路径中的任意两个函数,若其函数参数存在关联性,统计成对出现的次数。优选地,步骤S4具体包括:根据所设定的阈值对成对的函数进行过滤,低于或等于所设定阈值的函数被忽略,高于所设定阈值的函数被保留,并判定为配对函数。优选地,步骤S5具体包括:根据挖掘和统计分析后所得的配对函数,对源码中的执行路径进行扫描,若正常路径中调用了配对函数之一,则检查在执行路径上的异常处理路径是否调用了对应的配对的另一个函数。优选地,所述根据函数返回值进行错误判定,具体包括:若调用的接口函数返回相关的错误或者读取到输入的异常数据,则中断后续的执行。优选地,所述参数存在关联性,具体包括:当两个函数作用于同一具体资源上时,两个函数参数和返回值存在关联性;在规范命名的大型软件中,两者函数名字存在关联性。优选地,所述所设定的阈值具体包括频度参数、系统默认值以及根据统计结果计算的平均值。优选地,任一所述配对函数包含两个函数,其中一个在正常执行路径中,另一个出现在与之对应的异常处理路径中,且两者执行相反的功能或操作。优选地,所述输入的异常数据具体包括:外部环境、硬件或用户输入的异常数据,或者输入的数据进行运算后产生的异常数据。(三)有益效果本专利技术至少有如下有益效果:本专利技术提供了,能够自动地挖掘接口函数中的配对函数,并对源码进行规范检查,因此对接口函数的使用规范有着重要意义。【专利附图】【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。图1为本专利技术实施例的的流程图;图2为本专利技术实施例的一个具体的挖掘和分析源码示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1:如图1所示,本专利技术实施例提供了,该方法包括如下步骤:S1:分离出源码使用接口函数;S2:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类;S3:统计正常执行和异常处理路径中接口函数成对出现的频度;S4:根据阈值过滤低频次不可信的配对函数;S5:根据过滤后的配对函数检测源码中的使用违例。优选地,所述源码使用接口函数包括:大型操作系统软件中提供给驱动程序使用的内核扩展函数接口,以及大型软件分层设计实现中为上层提供的资源管理接口。优选地,步骤S2具体包括:根据函数返回值进行错误判定,发生错误时,调用的函数均为异常处理路径中的函数,而执行成功的函数则处于正常执行路径中。优选地,步骤S3具体包括:对于正常执行路径和异常处理路径中的任意两个函数,若其函数参数存在关联性,统计成对出现的次数。优选地,步骤S4具体包括:根据所设定的阈值对成对的函数进行过滤,低于或等于所设定阈值的函数被忽略,高于所设定阈值的函数被保留,并判定为配对函数。优选地,步骤S5具体包括:根据挖掘和统计分析后所得的配对函数,对源码中的执行路径进行扫描,若正常路径中调用了配对函数之一,则检查在执行路径上的异常处理路径是否调用了对应的配对的另一个函数。优选地,所述根据函数返回值进行错误判定,具体包括:若调用的接口函数返回相关的错误或者读取到输入的异常数据,则中断后续的执行。优选地,所述参数存在关联性,具体包括:当两个函数作用于同一具体资源上时,两个函数参数和返回值存在关联性;在规范命名的大型软件中,两者函数名字存在关联性。优选地,所述所设定的阈值具体包括频度、系统默认值以及根据统计结果计算的平均值。优选地,任一所述配对函数包含两个函数,其中一个在正常执行路径中,另一个出现在与之对应的异常处理路径中,且两者执行相反的功能或操作。优选地,所述输入的异常数据具体包括:外部环境、硬件或用户输入的异常数据,或者输入的数据进行运算后产生的异常数据。本专利技术实施例提供了,能够自动地挖掘接口函数中的配对函数,并对源码进行规范检查,从而使得因此对接口函数的使用规范有着重要意义。实施例2:如图2所示,为本专利技术另一实施例提供的,在该实施例中将结合操作系统的设备驱动源码,根据所述的挖掘和分析方法对该款驱动的检测过程进行具体阐述。步骤101:分离出函数cp_init_one调用的函数,包括:alloc_etherdev、pci_enable_device> pci_set_mwi> pci_disable_device 和 free_netdev。步骤102:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类。由于存在多条可能的执行路径,为了简单,选择多条执行路径中的一条,其中包括正常执行和异常处理两类操作。如图2所示,在1889行出现错误,此时alloc_etherdev和pci_enable_device执行成功,位于正常执行路径中,并转入异常执行路径,包括pci_disable_device 和 free_netdev 两个函本文档来自技高网...

【技术保护点】
一种基于配对资源管理函数的自适应挖掘和分析方法,其特征在于,该方法包括:S1:分离出源码使用接口函数;S2:根据控制流信息对接口函数按照正常执行和异常处理路径进行归类;S3:统计正常执行和异常处理路径中接口函数成对出现的频度;S4:根据所设定阈值过滤低频次不可信的配对函数;S5:根据过滤后的配对函数检测源码中的使用违例。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡事民刘虎球
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1