一种Java程序插桩语言及支撑工具

来源 :南京大学 | 被引量 : 0次 | 上传用户:shabi12345678
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
插桩技术在程序分析、测试等领域都占有非常重要的地位。但是现有的插桩实现技术需要用户根据不同的被分析、测试程序构造不同的插桩模块,这种实现方式往往导致了插桩过程工作繁琐,并且已有的插桩模块难以复用。本文将整个插桩过程分为两个步骤来进行:第一,利用代码查询技术在程序的源代码中定位需要被插桩的位置;第二,根据插桩点的上下文信息为每一个不同的插桩点构造相应的植入代码。根据这种思想,我们提出了一个基于代码查询的插桩方法JIns,并实现了相应的支撑工具。JIns方法拥有一套语法规则来描述插桩点在程序中的位置,同时提供了带有参数的插桩语句模板机制实现上下文敏感的插桩工作。本文针对于现有插桩工作的不足,解决了下面的问题:·如何提供一种通用的方式来定位插桩点。JIns方法基于代码查询的方法,提出了基于一阶谓词逻辑的查询语言,它支持对类(接口)、方法、语句和变量四类程序元素的描述。语言形式上与SQL类似,方便用户使用。·如何根据插桩点在程序中位置的不同而构造不同的插桩语句。JIns方法提供了带有参数的插桩模板,其中的参数将会被查询过程中得到的信息所替换,从而构造出上下文敏感的插桩代码。·如何评估插桩代码对程序运行时间的影响。本文提供了一套用于计算插桩语句运行时间的机制,通过该机制,用户可以方便地看出插桩代码运行时间在整个程序运行时间中所占的比例。
其他文献
网络技术迅速发展极大提高了信息网络化的应用效率,但是由于重要信息在网络中的存在与传播,使得网络安全问题也更加突出,加深了信息共享和安全隔离之间的矛盾。据统计分析,内
图像识别是一门新型技术科学,在科研与工业生产中得到了广泛应用,例如指纹识别、语音识别及虹膜识别等等.图像识别的重点在于抓住图像的特点,对图像作出正确的描述、处理、分
该文对有关多媒体网络的若干技术问题进行了较为详细的描述与探讨,对多媒体的关键技术,如音频和视频的压缩技术进行了细致的分析与研究;对多媒体网络的同步技术及并发控制问
作者们的研究课题始于1991年,其目标是研制一个实用化的对象-关系数据库管理系统(ANGEL),该系统独创性地采用了非一范式结合面向对象的数据模型,从而直接支持复杂对象和对象嵌入
在传统的机器学习中,学习器通过对大量有标记样本进行学习来建立模型预测新样本的标记。但是收集大量数据相对容易,而对这些大量数据提供标记却比较困难,因为对数据进行标记需要
近年来,高性能计算技术被广泛应用,这些应用对计算机的性能不断提出更高的要求.传统的同构并行计算由于算法结构和系统的体系结构不匹配,造成资源浪费及性能下降.由高速局域
学位
该文对静态灰度图象中正面人脸的检测问题进行了实验研究.所谓正面人脸是指人脸中的各个器官(如双眼,鼻子、嘴巴)在图象中均可见.该文提出了一系列基于多磁联模板匹配的人脸
该文分析了集中式应用程序共享方式传输流量大,响应速度慢的缺点.提出了在分布式应用程序共享方式中,利用操作命令(OP)通道的方式来解决这些问题. 根据Windows操作系统的实际
该文的目标是在充分讨论多通道用户界面的特点和关键技术的基础上,多通道用户界面的定义和性质是讨论其开发方法和相关技术.围绕这一目标,该文就以下几方面展开了讨论:1.多通