[发明专利]基于代码查询进行源代码插桩的方法无效
申请号: | 201110275897.5 | 申请日: | 2011-09-19 |
公开(公告)号: | CN102298552A | 公开(公告)日: | 2011-12-28 |
发明(设计)人: | 张天;陶永晶;赵建华 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 陈建和 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 查询 进行 源代码 方法 | ||
技术领域
本发明涉及计算机程序动态分析,主要涉及一种基于代码查询的插桩方法。
背景技术
程序分析通常利用静态程序分析和动态程序分析对程序行为进行自动分析,进而提高软件质量。动态程序分析常借助于插桩方法来收集程序动态运行行为,某些与运行环境相关的程序行为只能通过插桩来收集,而静态程序分析无法进行分析。软件开发过程中,代码审查者在代码编写阶段完成后使用源代码插桩方法对代码进行审查,通常审查者拥有阅读源代码权限但不便对代码进行修改。通过对程序运行行为的分析尽早发现代码中的错误,进而提高软件质量。源代码插桩能够充分地利用程序语义、可视化地显示插桩代码、并且不会提高代码逻辑复杂性。
程序插桩技术,是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针,通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。由于程序插桩技术是在被测程序中插入探针,然后通过探针的执行来获得程序的控制流和数据流信息,以此来实现测试的目的。因此,根据探针插入的时间可以分为目标代码插桩和源代码插桩。
现有插桩方法主要包括断言机制、字节码插桩、面向方面插桩等三类方法。断言机制直接在写源文件中添加插桩代码,将会降低代码阅读性。字节码插桩则直接对字节码文件进行修改,被插字节码的源代码无法可视化,且无法保证代码插入过程的正确性。面向方面插桩在程序纵向继承关系的基础上增加了横向方面关系,增加了程序的逻辑复杂性。
目前插桩技术主要存在的瓶颈主要有:插桩点及其代码非可视化、插桩点自动定位困难、难以做到插桩语句上下文敏感、自动插桩性能较低的问题。
代码查询技术在软件设计有着十分重要的地位。一些查询工具被设计用于帮助程序员理解程序中大量经常变化和复杂的关系。目前,代码查询技术已经被广泛的用于软件代码查询技术在软件分析和测试工作中发挥着重要的作用,在软件架构分析,逆向工程,一致性验证,代码审查等方面都有广泛的应用。从另一方面看,代码查询已经延伸至系统框架错误检测,识别重构可能,定位项目缺陷,查询横切关注点,监测开发过程,评估设计适量,跟踪冗余依赖条件等等。通常插桩过程分两步进行:(1)定位插桩语句将要插入的位置(2)构建插桩语句。
目前插桩技术主要存在的瓶颈主要有:插桩点及其代码非可视化、插桩点自动定位困难、难以做到插桩语句上下文敏感、自动插桩性能较低的问题。
发明内容
本发明目的是,鉴于上述问题,本发明旨在提供一个源代码插桩方法,该方法结合代码查询技术,有效的将代码查询得到的插桩位置以及上下文内容与插桩机制相结合在一起。
本发明是通过以下的技术方案实现的:无痕可管理的源代码手动定义标志插桩方法:
步骤10:打开一个工程(程序);
步骤11:通过在JSearch编辑器里输入相应的插桩命令;
步骤12:工具运行JSearch命令,得到所有的插桩点定义
步骤13:审查所有插桩点的定义:若发现带有错误的插桩点,则进入步骤14对其进行修改;没有发现带有错误的插桩点,则直接进入步骤15;
步骤14:修改插桩的定义至正确;
步骤15:将插桩点与原源文件合并生成新源文件;
其中步骤11和步骤12所使用的JSearch命令符合下面的语法规范:
S∶= find Id:T satisfying CS IS
T∶= object
| statement
| method
| class
|interface
CS∶= {exist Id:T}{all Id:T} where CE
CE∶= CE && CE
| CE || CE
| !CE
| (CE)
| Id.Att=’value’
| Id Rel Id
Att∶= name
| dataType
| specificType
| returnType
| paramsType
Rel∶= extend
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110275897.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:延时单元电路
- 下一篇:基于自适应扩散基函数分解的组织纤维束结构信息提取方法