[发明专利]一种基于高阶函数的C++过程间异常分析系统及方法在审
申请号: | 202210168542.4 | 申请日: | 2022-02-23 |
公开(公告)号: | CN114647575A | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 张迎周;葛丽丽;帅东昕;密杰;杨嘉毅;卢跃;许碧欢 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/48;G06F16/35 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 c++ 过程 异常 分析 系统 方法 | ||
本发明公开了函数式编程和程序分析技术领域的一种基于高阶函数的C++过程间异常分析系统及方法,包括:确定过程调用图中每个被调用子过程的分析顺序,将C++程序中的语句进行分类;收集各个被调用子过程异常相关语句和函数调用语句的集合约束,按照集合约束规则对集合约束进行求解,获取过程内异常分析信息后,通过高阶函数的形式将所有被调用子过程的异常分析结果保存为异常分析函数摘要;按照函数的参数传递方式,根据形参和实参对应参数信息,在过程调用点处,对高阶函数式异常分析函数摘要的参数集合信息进行相应代入。本发明降低了传统方法需要构建过程间异常控制流图对异常进行过程间分析的时空开销,解决了异常分析效率较低的问题。
技术领域
本发明涉及一种基于高阶函数的C++过程间异常分析系统及方法,属于函数式编程和程序分析技术领域。
背景技术
随着软件规模的不断增大,人们对软件质量的要求越来越高,为了提高软件系统的健壮性,对程序中的异常进行快速有效的分析变得越来越重要。传统的过程间异常分析关注的主要问题是在发生过程调用的情况下如何快速找到与抛出异常相匹配的异常处理程序,排查出程序中真正未捕获的异常,将其相关信息进行反馈(如异常的唯一标识,异常名,未捕获异常的传播路径)。目前主流的过程间异常分析方法大多是在过程间异常控制流图的基础上进行遍历,获取过程间的异常相关信息。这类方法虽然能够将异常的信息在图上直观地表现出来,但是软件系统复杂性的提高使得构建过程间异常控制流图的时空开销非常大。
集合约束方法通过收集特定问题的相关集合约束信息,并按照一定的约束求解规则对约束进行求解,达到对特定问题进行分析的目的。本发明对异常相关集合约束进行收集,借助于函数式编程中高阶函数的特性——函数可以作为参数和返回值,提供一种基于高阶函数的过程间异常分析方法,以解决传统方法异常分析效率较低的问题。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于高阶函数的C++ 过程间异常分析系统及方法,降低了传统方法需要构建过程间异常控制流图对异常进行过程间分析的时空开销,解决了异常分析效率较低的问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种基于高阶函数的C++过程间异常分析方法,包括:
确定过程调用图中每个被调用子过程的分析顺序,将C++程序中的语句进行分类;
收集各个被调用子过程异常相关语句和函数调用语句的集合约束,按照集合约束规则对集合约束进行求解,获取过程内异常分析信息后,通过高阶函数的形式将所有被调用子过程的异常分析结果保存为异常分析函数摘要;
按照函数的参数传递方式,根据形参和实参对应参数信息,在过程调用点处,对高阶函数式异常分析函数摘要的参数集合信息进行相应代入,从而将过程内的异常分析信息传递至过程间过程调用点处,获取过程间异常分析结果。
进一步的,确定过程调用图中每个被调用子过程的分析顺序,将C++程序中的语句进行分类,包括:
构建C++程序的过程调用图;
按照逆拓扑排序顺序遍历过程调用图,确定被调用子过程的分析顺序;
将程序中的语句分为异常相关的语句、过程调用语句和普通语句后,为每条语句设定一个用来跟踪未捕获异常的传播路径标签。
进一步的,收集各个被调用子过程异常相关语句和函数调用语句的集合约束,按照集合约束规则对集合约束进行求解,获取过程内异常分析信息后,通过高阶函数的形式将所有被调用子过程的异常分析结果保存为异常分析函数摘要,包括:
步骤2-1)按序选取一个待分析的子过程,初始化所述待分析子过程的集合约束,包括throw语句、try-catch处理结构、过程调用语句的异常相关集合约束;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210168542.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预制风帽及制造方法
- 下一篇:一种智慧支付可调扫描装置