[发明专利]一种程序分析方法、装置及电子设备在审
申请号: | 202111488465.2 | 申请日: | 2021-12-08 |
公开(公告)号: | CN114138280A | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 董敏;覃耀辉;康凯;张聪;田泽润 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;丁芸 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 分析 方法 装置 电子设备 | ||
1.一种程序分析方法,包括:
获取待分析程序文件对应的抽象语法树;
根据所述预设特征代码查找所述抽象语法树,确定出所述抽象语法树中包含预设特征代码的第一代码文件,其中,所述预设特征代码标识了所述待分析程序文件的执行过程;
统计所述第一代码文件中包含的预设特征代码的数量和所述预设特征代码的子预设特征代码的数量,得到第一统计结果,其中,所述子预设特征代码为包含所述预设特征代码的子代码;
展示所述第一统计结果。
2.根据权利要求1所述的方法,还包括:
根据预设筛选条件,筛选所述第一统计结果,得到第二统计结果;
展示所述第二统计结果。
3.根据权利要求1所述的方法,还包括:
若所述第一代码文件对应在待分析程序文件中的函数的函数类型为具名函数,确定出所述预设特征代码在所述第一代码文件中的执行链路,得到第一关联结果;
展示所述第一关联结果。
4.根据权利要求3所述的方法,其中,所述第一关联结果,包括:
测试所述第一关联结果,获得所述执行链路对应的各代码的执行结果;
根据所述执行结果确定所述执行链路对应的已执行的代码占所述执行链路对应的所有代码的比率,作为执行覆盖率;
将所述第一关联结果和所述执行覆盖率作为第二关联结果,展示所述第二关联结果。
5.根据权利要求4所述的方法,其中,所述测试所述第一关联结果,获得所述执行链路对应的各代码的执行结果,包括:
对所述第一关联结果进行增量筛查,得到筛查结果;
测试所述筛查结果,获得所述执行链路对应的各代码的执行结果。
6.一种程序分析装置,包括:
程序转化模块,用于获取待分析程序文件对应的抽象语法树;
文件确定模块,用于根据所述预设特征代码查找所述抽象语法树,确定出所述抽象语法树中包含预设特征代码的第一代码文件,其中,所述预设特征代码标识了所述待分析程序文件的执行过程;
统计模块,用于统计所述第一代码文件中包含的预设特征代码的数量和所述预设特征代码的子预设特征代码的数量,得到第一统计结果,其中,所述子预设特征代码为包含所述预设特征代码的子代码;
第一展示模块,用于展示所述第一统计结果。
7.根据权利要求6所述的装置,还包括:
结果筛选模块,用于根据预设筛选条件,筛选所述第一统计结果,得到第二统计结果;
第二展示模块,用于展示所述第二统计结果。
8.根据权利要求6所述的装置,还包括:
关联结果获取模块,用于若所述第一代码文件对应在待分析程序文件中的函数的函数类型为具名函数,确定出所述预设特征代码在所述第一代码文件中的执行链路,得到第一关联结果;
第三展示模块,用于展示所述第一关联结果。
9.根据权利要求8所述的装置,其中,所述第三展示模块,包括:
测试单元,用于测试所述第一关联结果,获得所述执行链路对应的各代码的执行结果;
覆盖率获取单元,用于根据所述执行结果确定所述执行链路对应的已执行的代码占所述执行链路对应的所有代码的比率,作为执行覆盖率;
第三展示单元,用于将所述第一关联结果和所述执行覆盖率作为第二关联结果,展示所述第二关联结果。
10.根据权利要求9所述的装置,其中,所述测试单元,包括:
筛查子单元,用于对所述第一关联结果进行增量筛查,得到筛查结果;
筛查结果测试子单元,用于测试所述筛查结果,获得所述执行链路对应的各代码的执行结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111488465.2/1.html,转载请声明来源钻瓜专利网。