作者投稿和查稿 主编审稿 专家审稿 编委审稿 远程编辑

计算机工程 ›› 2013, Vol. 39 ›› Issue (1): 29-34. doi: 10.3969/j.issn.1000-3428.2013.01.006

• 专栏 • 上一篇    下一篇

基于插桩和布尔逻辑的运行时程序验证框架

李业华 1,2,3,顾乃杰 1,2,3,张颖楠 1,2,3,彭 飞 1,2,3   

  1. (1. 中国科学技术大学计算机科学与技术学院,合肥 230027;2. 安徽省计算与通讯软件重点实验室,合肥 230027;3. 中国科学技术大学中国科学院沈阳计算技术研究所网络与通信联合实验室,合肥 230027)
  • 收稿日期:2012-04-10 修回日期:2012-05-08 出版日期:2013-01-15 发布日期:2013-01-13
  • 作者简介:李业华(1986-),男,硕士研究生、CCF会员,主研方向:程序验证,网络负载均衡;顾乃杰,博士、博士生导师;张颖楠,硕士;彭 飞,博士
  • 基金资助:

    “核高基”重大专项(2009ZX01028-002-003-005);国家自然科学基金资助项目(60833004);高等学校学科创新引智计划基金资助项目(B07033)

Runtime Program Verification Framework Based on Instrumentation and Boolean Logic

LI Ye-hua 1,2,3, GU Nai-jie 1,2,3, ZHANG Ying-nan 1,2,3, PENG Fei 1,2,3   

  1. (1. School of Computer Science and Technology, University of Science and Technology of China, Hefei 230027, China; 2. Anhui Province Key Laboratory of Computing and Communication Software, Hefei 230027, China; 3. Network and Communication Joint Laboratory, USTC&SICT, Hefei 230027, China)
  • Received:2012-04-10 Revised:2012-05-08 Online:2013-01-15 Published:2013-01-13

摘要:

针对软件测试和静态程序验证中存在的连续性程序执行验证和推理问题,提出一个基于程序插桩和布尔逻辑的运行时程序验证框架——RPA。定义一种用于描述运行时程序性质和规范的动态逻辑语言RPAL,实现自动化插桩以收集运行时程序状态信息,设计一个支持高效验证的句子调度算法。实验结果表明,结合合适的谓词扩展,RPA可以有效地验证和分析软件逻辑,发现潜在的软件错误。

关键词: RPA框架, RPAL语言, 运行时程序验证, 程序插桩, 布尔逻辑, 事实推理

Abstract:

Continuously verifying and reasoning on software’s execution property are notoriously hard to solve by general software test and static program verification. Aiming at the problems, this paper proposes a runtime program verification framework named RPA based on program instrumentation and Boolean logic. RPA defines a dynamic logic language which describes and asserts runtime properties of target program, proposes an automatic instrumentation approach to collect state information in runtime program, and designs a scheduling algorithm to support fast verification and reasoning. Experimental results show that combined with appropriate predicate extensions, RPA can effectively verify and analyze the software logic, to identify potential software errors.

Key words: RPA framework, RPAL language, runtime program verification, program instrumentation, Boolean logic, fact reasoning

中图分类号: