【技术实现步骤摘要】
基于程序分析结果的字节码插桩方法、装置及存储介质
本申请涉及计算机
,尤其涉及基于程序分析结果的字节码插桩方法、装置及存储介质。
技术介绍
插桩技术是白盒测试工具必须使用到的技术,相关技术中,常使用字节码插桩技术或二进制代码插桩技术,由于上述两种插桩技术均需要分析字节码,但字节码的分析导致源代码信息缺失,进而无法获得程序的控制流信息;因此如何在源代码中进行插桩以获取程序源代码的运行信息是需要解决的技术问题。
技术实现思路
本申请实施例提供一种基于程序分析结果的字节码插桩方法、装置及存储介质,可以通过在源代码中设置插桩点,实现源代码运行信息的获取。本申请实施例的技术方案是这样实现的:一方面,本申请实施例提供基于程序分析结果的字节码插桩方法,包括:基于程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息;基于所述目标插桩点信息,设置对应的目标插桩点;所述目标插桩点用于获取所述目标插桩点对应的基本块的运行信息。上述方案中,所述基于程序的源代码划分的至少一个基本块 ...
【技术保护点】
1.基于程序分析结果的字节码插桩方法,其特征在于,所述方法包括:/n基于程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息;/n基于所述目标插桩点信息,设置对应的目标插桩点;/n所述目标插桩点用于获取所述目标插桩点对应的基本块的运行信息。/n
【技术特征摘要】 【专利技术属性】
1.基于程序分析结果的字节码插桩方法,其特征在于,所述方法包括:
基于程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息;
基于所述目标插桩点信息,设置对应的目标插桩点;
所述目标插桩点用于获取所述目标插桩点对应的基本块的运行信息。
2.根据权利要求1所述的方法,其特征在于,所述基于程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息,包括:
基于所述程序的源代码划分的至少一个基本块的基本块信息,确定候选插桩点信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息包括:
在所述候选插桩点信息对应的基本块包括逻辑块的情况下,删除所述逻辑块对应的候选插桩点信息;
确定所述候选插桩点信息中除已删除的候选插桩点信息之外的候选插桩点信息为目标插桩点信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标插桩点信息,设置对应的目标插桩点,包括:
基于所述目标插桩点信息确定目标插桩点的代码;
基于所述目标插桩点的代码设置对应的目标插桩点。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标插桩点信息确定目标插桩点的代码,包括:
判断所述目标插桩点信息对应的基本块是否为起始块;
在所述目标插桩点信息对应的基本块是起始块的情况下,确定所述目标插桩点的代码包括第一字符串;
或者,在所述目标插桩点信息对应的基本块不是起始块的情况下,确定所述目标插桩点的代码包括第二字符串。
6.根据权利要求1所述的方法,其特征在于,所述候选插桩点信息包括:
所述候选插桩点对应的基本块信息和所述候选插桩点的位置信息。
7.根据权利要求6所述的方法,其特征在于,所述候选插桩点的位置信息包括:
所述候选插桩点对应的基本块的代码的行号之前。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述基本块信息包括以下至少一种:
所述基本块所属的文件的身份标识号ID、所述基本块的标识信息、所述基本块的行号和所述基本块的块类型标识。
9.基于程序分析结果的字节码插桩装置,其特征在于,所述装置包括:
获取单元,用于基于程序的源代码划分的至少一个基本块的基本块信息,获取目标插桩点信息;
技术研发人员:赵明,冯文亮,陈俊,程烨,曹栋,
申请(专利权)人:苏州洞察云信息技术有限公司,上海浦东发展银行股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。