[发明专利]一种处理软件代码的方法和电子设备在审
申请号: | 202111300044.2 | 申请日: | 2021-11-04 |
公开(公告)号: | CN114003868A | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 王喆;武成岗;张培华;曾凯 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理软件 代码 方法 电子设备 | ||
1.一种处理软件代码的方法,其特征在于,包括:
获取待处理的软件代码,构建所述软件代码的控制流图;
根据所述控制流图和预设的处理逻辑,对所述软件代码中选定的函数进行拆分处理和/或聚合处理以改变控制流图的原有结构,其中,所述拆分处理是将一个函数裂变成多个函数,将函数内控制流关系转变成函数间调用关系,所述聚合处理是将多个函数聚合成一个函数。
2.根据权利要求1所述的方法,其特征在于,对所述软件代码中相应的函数先进行拆分处理,后进行聚合处理。
3.根据权利要求1或2所述的方法,其特征在于,所述拆分处理包括:
将一个原函数拆分为多个函数,其中一个函数留用原函数名,为其他函数分别分配唯一的函数名;
基于留用的原函数名以及其他函数获得的唯一的函数名,将拆分前的控制流关系改为函数间的调用关系。
4.根据权利要求3所述的方法,其特征在于,所述拆分处理还包括:
针对拆分出的其他函数中未定义的临时变量和/或全局变量,在拆分出的函数中添加Caller函数,以在执行时通过Caller函数将所需的临时变量和/或全局变量从当前拆分出的其他函数对应的留用原函数名的函数中传递过来;以及
针对拆分出的其他函数中标量,根据其对应原函数中记录的值进行重新定义。
5.根据权利要求1或2所述的方法,其特征在于,所述拆分处理包括:进行拆分时获取用户指定的拆分粒度,以支配子树、循环、分支、基本块、指令或者其组合对应的粒度进行拆分。
6.根据权利要求1或2所述的方法,其特征在于,所述拆分处理包括:对拆分出的函数在软件代码中的位置进行随机重排。
7.根据权利要求1或2所述的方法,其特征在于,所述聚合处理包括:
收集当前的软件代码中的聚合参考信息,其包括函数间的调用关系、函数是否与递归相关;
根据所述聚合参考信息,在忽略与递归相关的函数的情况下,对当前的软件代码中的函数进行聚合处理。
8.根据权利要求7所述的方法,其特征在于,所述聚合参考信息还包括:函数是否与循环相关,所述聚合处理包括:
根据热代码分析技术分析各个函数的热度,对热度低于第一阈值的与循环相关的函数以及热度低于第二阈值的与循环无关的函数进行聚合处理,其中,第一阈值小于等于第二阈值。
9.根据权利要求7所述的方法,其特征在于,所述聚合处理包括:
将至少两个函数聚合为一个聚合函数,为聚合函数分配唯一的函数名以及为聚合前的至少两个函数分别分配在该聚合函数内唯一的分支标签;
将需要直接调用聚合函数中某个分支的调用函数中对聚合前的函数的调用修改为对聚合函数及其分支的调用。
10.根据权利要求7所述的方法,其特征在于,所述聚合处理包括:
将至少两个函数聚合为一个聚合函数,为聚合函数分配唯一的函数名以及为聚合前的至少两个函数分别分配在该聚合函数内唯一的分支标签;
对所有函数进行字节对齐处理以使函数指针中的部分比特位处于闲置状态;
在需要间接调用某个函数的调用者中插入预定的赋值函数以将调用控制信息加入调用者的函数指针中,其中,调用控制信息中包括指示被调函数是否为聚合函数以及在聚合函数内的分支标签;
在所有的间接调用点插入用于对调用控制信息进行解析的解析代码,其中,在解析到需要间接调用聚合函数时,通过解析代码将计算所需参数以及指针中记载的分支标签传递给被调用的聚合函数。
11.一种计算机可读存储介质,其特征在于,其上包含有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至10中任一项所述方法的步骤。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
存储器,其中存储器用于存储可执行指令;
所述一个或多个处理器被配置为经由执行所述可执行指令以实现权利要求1至10中任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111300044.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自旋式炉头通针机构
- 下一篇:一种浓废液低温真空蒸馏浓缩装置