C程序运行时监控和验证的插桩方法研究与应用

来源 :南京航空航天大学 | 被引量 : 0次 | 上传用户:bb790858108
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件在社会生活应用中的不断深入,软件系统的体积和复杂度都呈现出迅速增长的态势,软件可靠性问题也相应成为软件行业发展不容忽视的重要方面。在现有的软件验证技术中,运行时验证作为一种轻量级的验证技术,综合了运行时监控技术和形式化规约技术,是当前软件验证领域的一个研究热点问题。而在运行时验证的技术实现中,一方面需要实现待验证性质的描述和相应验证器的生成,另一方面需要将监控器和验证器集成到待监控的软件系统中,即监控和验证代码的插桩。由于软件体积和复杂度的不断增加,基于日志API监控或手动进行监控验证代码插桩明显不能满足不同平台,不同类型系统监控验证的需求。随着编译器技术和面向方面编程技术的不断发展,利用编译器实现代码自动插桩,借助面向方面语言实现插桩位置描述和模块化管理,正在成为推动运行时验证实际应用的重要研究领域。本文分析了C语言的编译流程,LLVM开源编译器框架及其Clang编译器前端,在此基础上参照面向方面编程的概念,设计并实现了一种针对C程序的面向方面语言MOVEC,其相应编译器能够解析监控器插桩位置的描述并利用源代码插桩技术实现插桩需求。同样基于源代码插桩的技术,本文设计并实现了软件中除0,整数溢出和变量使用前未初始化错误验证器的插桩。通过将MOVEC语言编译器和现有针对C/C++程序的面向方面语言编译器AspectC,Aspect C++在准确性,插桩时间,程序性能影响和程序代码膨胀等方面进行对比,表明MOVEC语言能够在保证对程序性能的低影响前提下,实现更高的准确性,更低的插桩时间,更小的代码膨胀率。实验同时验证了三种常见错误验证器设计和插桩方法的正确性。本文的工作为运行时验证监控器和验证器插桩的自动化,高效率,跨平台实现提供了基础,能够促进运行时验证在实际生活中的应用。
其他文献
在我国进入建设有中国特色的社会主义新的历史阶段,各级政府为了更好地率领广大人民群众投身于社会主义物质文明建设和精神文明建设,都在认真思考着同一个问题,即如何为人民
B超诊断妇科疾病,因其无创伤、无痛苦、速度快且灵敏度高而广受患者欢迎。本文通过对卵巢囊性畸胎瘤的构成与超声图像进行比较分析,来提高B超诊断本病的准确率。1 临床资料与
目的 评价伊曲康唑治疗真菌性角膜炎的疗效及应用价值。方法 采用伊曲康唑口服,每次0.2g,每日1次,配合3%碘酊局部烧灼清创后涂伊曲康唑药粉及1%溶液点眼治疗36例(36眼)真菌性角
随着社会的不断发展,对矿产资源需求是越来越多,为了更好的满足对矿产资源需求,需要加强对矿产资源的开发。在矿产资源开发中,通过地质钻探工作,可以实现对岩石样品的检测,查
<正> 最近两年,由于受全球经济不景气影响,全球光通信市场下滑。但光通信产业毕竟是本世纪的朝阳产业,光通信市场仍具有极大的发展潜力,所以光通信市场不仅面临挑战,在网络市
西汉的城市建设起步较晚,直到汉武帝时长安城才基本建成,且以皇家宫殿和园林为主,因而西汉的赋家还没有建立起以都邑为审美对象的观念。由于城市建设的发展和东汉初期发生的
食管癌是所有癌瘤中最致命的癌症之一。Barrett’s食管或Barrett’s肠化是食管腺癌的癌前病变,近年发病率有增高趋势。为了改善预后,提高生存率,手术是最有希望的治疗,但大多
中国压敏界在当前实现“世界生产大国”的努力中,要同时规划和准备向“世界压敏电阻技术强国”的进军,只有真正成为了技术强国,才能保持“生产大国”的地位,才能取得更好的经