期刊文献+

C程序分析工具中程序切片的设计与实现 被引量:1

Design and Implementation of Program Slicing in C Program Analysis Tool
下载PDF
导出
摘要 符号执行技术以其良好的精确度控制被广泛应用于程序分析领域,它将程序中变量的值用抽象的符号表示,模拟真实的程序执行.由于其路径敏感,在分析过程中会带来严重的状态爆炸问题.提出针对缺陷的程序切片方法来缓解这一问题,首先根据用户关心的缺陷生成源程序的切片准则,然后分析源代码生成数据依赖图和控制依赖图,由两者构成程序依赖图,再根据切片准则做程序切片,将源程序规模缩小,最后将切片后的程序交给程序分析工具分析.在符号执行分析工具ShapeChecker上的实验结果表明,提出的方法具有良好的效果. Symbolic execution is widely used in program analysis for its well-controlled precision. It denotes the value of variables as abstract symbols and simulates the execution of programs. Because our tool is path-sensitive, we suffer the path-explosion problem when analyzing source code. We present a program slicing method for defects to alleviate the problem. Firstly, we generate the slicing criterion of source programs according to defects that users concern about. Then we analyze the source code to generate Data Depend- ence Graph and Control Dependence Graph, which constitute Program Dependence Graph. Next, the program is sliced according to the slicing criterion so that the source code could be reduced. Finally, we use the program analyzer to analyze the sliced program. The ex- perimental results on ShapeChecker, our symbolic execution tool, show that the method is effective.
作者 蒋刚 李兆鹏
出处 《小型微型计算机系统》 CSCD 北大核心 2018年第3期401-405,共5页 Journal of Chinese Computer Systems
基金 国家自然科学基金项目(61379039,61632005)资助.
关键词 缺陷检测 程序切片 静态分析 符号执行 defect detection program slicing static analysis symbolic execution
  • 相关文献

参考文献2

二级参考文献27

  • 1Balakrishnan G, Sankaranarayanan S, Ivan F, Wei O, Gupta A. SLRz Path-sensitive analysis through infeasible-path detection and syntactic language refinement//Proceedings of the Static Analysis Symposium (SAS 2008). Valencia, Spain, 2008:238-254.
  • 2Thakur A, Govindarajan R. Comprehensive path-sensitive data-flow analysis//Proceedings of the 6th Annual IEEE/ ACM International Symposium on Code Generation and Optimization(CGO 2008). Boston, Massachusetts, 2008:55-63.
  • 3Duesterwald E, Gupta R, Soffa M. A practical framework for demand-driven interprocedural data flow analysis. ACM Transactions on Programming Languages and Systems (TOPLAS), 1997, 19(6): 992-1030.
  • 4Weiser M. Program slieing//Proceedings of the 5th International Conference on Software Engineering (ICSE 1981). San Diego, California, 1981:439-449.
  • 5Cousot P, Cousot R. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints//Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL 1977). Los Angeles, California, 1977.. 238-252.
  • 6Rice H. Classes of recursively enumerable sets and their decision problems. Transactions of the American Mathematical Society, 1953, 74(2): 358-366.
  • 7Das M, Lerner S, Seigle M. ESP: Path-sensitive program verification in polynomial time//Proeeedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation(PLDI 2002). Berlin, Germany, 2002:57-68.
  • 8Dhurjati D, Das M, Yang Y. Path-sensitive dataflow analysis with iterative refinement//Proceedings of the Static Analysis Symposium(SAS 2006). Seoul, Korea, 2006: 425- 442.
  • 9Le W, Soffa M. Refining buffer overflow detection via demand-driven path-sensitive analysis//Proeeedings of the 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2007). San Diego, California, 2007:63-68.
  • 10Manevich R, Sridharan M, Adams S, Das M, Yang Z. PSE: Explaining program failures via postmortem static analysis// Proceedings of the 12th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2004). California, USA, 2004:63-72.

共引文献11

同被引文献9

引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部