越界检查工具的研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:clarkesg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
通过打印日志来增进调试是软件故障诊断中常用的方法。而在实际中相关日志缺失情况严重。对此我们针对一个具体的错误情景来增加日志以增进故障诊断:数组越界检查。静态数组越界检查是很常见的进行数组越界检查的方式,然而目前的典型静态数组越界检查工具在精确度和可用性之间难以取得平衡,即存在可用性与精确度的矛盾——高精确度的结果会导致分析时间的膨胀,而可接受的分析时间之内又不能给出较高的分析精度。除此之外,受静态分析局限,有很多数组边界分析情形这些工具完全不能进行检查。本文提出了一种基于编译分析和程序变换进行动态数组越界检查的方案。本文主要的工作和贡献包括:  1.实现了一个基于编译分析和程序变换技术的动态数组越界检查原型。通过对目标程序经过GCC编译产生的GIMPLE层次中间代码的遍历,分析数组边界的情形;并通过插装技术,动态检查数组越界并产生打印结果。  2.实现了一种基于循环分析算法及循环不变计算外提技术的日志优化方法。动态工具常常产生开销问题。针对已实现的动态数组越界检查原型,本文进行了针对开销的一系列优化,主要通过循环分析来完成。经过循环分析、SSA及DU链等分析,本文完成了在循环中数组下标为不变计算的外提技术,可以实现多重循环的分析、外提,能够在层层循环嵌套中精确外提到能保持该计算不变的最大外层循环。  3.实现了一种基于循环分析算法及延迟报错技术的日志优化方法。针对动态工具的开销问题,除循环不变计算外提的技术外,本文还使用了延迟报错技术。仍然通过进行循环分析,把报错的插装点从循环内部延迟到循环外部,从而降低性能开销。  本工具能够正确分析出静态工具不能处理的若干数组越界检查情形;通过对真实应用程序Apache服务器系统的测试,证明工具能够在实际生活情境中较完备地检查出数组越界并能够打印越界分析结果。另外,通过SPEC CPU2006测试用例集进行的性能开销方面实验表明,两个优化对降低性能开销作用卓著,证明本文的工具在具有了良好的完备性、实际应用中的可靠性的同时,具有不错的实用性(性能评价实验中优化版本仅增加了26%的性能开销)。
其他文献
伴随着信息时代的到来以及通信技术和计算机技术的迅猛发展,无线寻呼通信也必将发生革命性的变革.目前无线寻呼正将朝着大信息量、多种服务功能的方向发展.该文所描述的综合
随着计算机网络技术的快速发展,特别是Internet的广泛应用,网络信息系统的安全问题日益严重,网络入侵检测系统(Network Intrusion Detection System,NIDS)在计算机网络安全领域的
学位
二进制翻译技术通过将已完成编译的客户机指令翻译为宿主机指令,实现既有软件的跨体系结构运行,以解决不同体系结构之间的软件兼容问题。执行效率较低是制约二进制翻译发展的主
石油物探是人们勘探地下油气资源的重要手段,通常的勘探方法是地震勘探,通过地震勘探可以比较准确地了解地下构造,地质层位和断层分布。但是在实际勘探中,特别是海洋勘探中,人们发
该论文介绍了一种基于PSTN网的远程电话语音采集与传输系统的软件和硬件电路,提出了通过高效的电话语音采集和压缩技术,借助于PSTN网进行传送的方法.采用远端处理机和中心站
学位
随着互联网与分布式技术的快速发展,面向服务的体系结构(SOA)得到了学术界和工业界的青睐和广泛应用。作为一种基于互联网标准和XML规范的新型分布式计算模型和实现SOA的主要
该文全面论述了移动Agent技术的发展、概念、理论和应用.然后,通过与传统技术的比较分析,对移动Agent技术进行了评价.提出了一个新的观点:移动Agent的实质是信息与服务的分离
该论文主要介绍了自由软件及其优秀代表Linux操作系统. 文中详细论述了自由软件的起源及其通用公共许可证,并分析了自由软件的特色、开发模式及其对中国的意义.文中详细论述