[发明专利]基于脚本的源代码插桩系统及方法在审
申请号: | 201510070401.9 | 申请日: | 2015-02-10 |
公开(公告)号: | CN104657266A | 公开(公告)日: | 2015-05-27 |
发明(设计)人: | 杨波波;顾春建;张谋晶 | 申请(专利权)人: | 上海创景计算机系统有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中;樊昕 |
地址: | 201203 上海市浦东新区张江高科技园*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 脚本 源代码 系统 方法 | ||
技术领域
本发明涉及一种计算机数据处理技术,更具体的说,涉及一种基于脚本的源代码插桩系统及方法。
背景技术
在诸多系统中,都有对源代码进行插桩或行为调整的需求,例如在白盒测试中,希望知道哪些代码、分支的覆盖率,从而评估当前测试的完整性。而诸多系统中都有各自的源代码插桩方案,不同的源代码类型也可能有不同的插桩方案,例如DT10测试设备中的源代码插桩采用的是固定方式,不能够灵活调整,用户在希望只针对函数性能测试的时候,没有办法做到中间源代码不插桩。
发明内容
本发明针对上述现有技术中存在的技术问题,提供一种基于脚本的源代码插桩系统及方法,可以灵活调整源代码插桩方案,具有非常好的扩展性,能够针对不同的源代码采用通用的源代码插桩解决方案,并且基于脚本的特性可以让系统在针对不同的源代码插桩方案都具有很好的扩展性,源代码插桩定制灵活。
为达到上述目的,本发明所采用的技术方案如下:
一种基于脚本的源代码插桩系统,包括源代码插桩前端模块、源代码类型分析器适配模块、插桩逻辑管理模块、插桩执行流程管理模块,所述源代码插桩前端模块提供用户脚本的程序,使用者通过命令行驱动插桩过程的执行;所述源代码类型分析器适配模块,针对不同源代码类型产生源代码的语法树信息;所述插桩逻辑管理模块,基于脚本对插桩逻辑进行定制;所述插桩执行流程管理模块,是插桩执行过程的驱动逻辑,通过此逻辑完成各个模块的协调调用。
所述源代码类型分析器适配模块能扩展添加新的源代码类型分析器。
所述插桩逻辑根据用户要求定制。
一种基于脚本的源代码插桩方法,通过上述的系统完成,包括步骤如下:
首先,用户通过源代码插桩前端模块将需要处理的源代码、通过插桩逻辑管理模块定制的插桩逻辑交给源代码插桩系统;
其次,源代码插桩系统通过源代码类型分析器适配模块,针对源代码的类型匹配对应的源代码类型分析器,对源代码进行语法分析,并将结果转换为系统内语法信息数据格式;
最后,通过插桩逻辑管理模块的插桩处理过程,将用户自定义的插桩逻辑插入到源代码逻辑中,最终生成一个插桩后的源代码。
本发明所采用的技术方案,对于用户来说,只需要实施两个步骤即可完成,定制源代码插桩逻辑,调用源代码插桩系统将定制的插桩逻辑应用到目标源代码中。因此,本发明技术方案能够针对不同的源代码采用通用的源代码插桩解决方案,并且基于脚本的特性可以让系统在针对不同的源代码插桩方案都具有很好的扩展性,源代码插桩定制灵活。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明所提供的方法流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明所提供的基于脚本的源代码插桩系统,包括源代码插桩前端、源代码类型分析器适配、插桩逻辑管理、插桩执行流程管理四大模块。
源代码插桩前端模块,提供了一个与用户交互的程序,使用者通过命令行驱动插桩过程的执行。
源代码类型分析器适配模块,是一个比较统称的模块,实际上它由很多的扩展模块构成,每一个模块针对一个源代码类型。这个模块对匹配的源代码语法结构有很深的了解,可以通过对源代码的语法规则进行分析,将源码提取为语法树结构,对这种语法数据结构定义了通用的表达规范,任何一种源代码类型,生成的语法树会大致相同。基于这样的基础可以定义出相对比较通用的插桩脚本。
插桩逻辑管理模块,是可定制的插桩逻辑模块,本质上可以使用任意一种脚本语言来实现,本实施例支持的是lua脚本语言。本发明定义的语法树形式是一种可逆的结构定义,修改这个语法树的结构,本质上就是间接的修改了最终插桩后的源代码,从这一点上来说,这个模块的功能非常强大,可以插入新的语句,可以修改现有源代码的逻辑结构。它的实现方式是,用户在脚本文件中编写感兴趣节点的处理函数,然后注册这些函数给插桩执行流程管理模块,最终的插桩执行流程管理模块在进行源代码插桩的步骤中,调用用户编写的语法树节点处理函数,实现最终源代码插桩的目的。
插桩执行流程管理,是插桩执行过程的驱动逻辑,通过此逻辑完成各个模块的协调调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海创景计算机系统有限公司;,未经上海创景计算机系统有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510070401.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:测试方法和系统
- 下一篇:一种测试Android应用程序的方法和装置