东南大学学报(自然科学版)2011,Vol.41Issue(6):1171-1176,6.DOI:10.3969/j.issn.1001-0505.2011.06.009
一种组合式基于调用栈的程序切片方法
A combinational program slicing approach based on call stacks
摘要
Abstract
Slicing based on call stacks reduces the size of static slice by leveraging the information of call stacks and then extracting current calling context. It is an effective technique to debug programs. In the traditional slicing method, system dependence graph is required to be constructed, which leads to high time overhead, especially for large programs. To enhance analysis efficiency, it is proposed that only partial procedures relevant to slicing criteria, instead of all procedures, are analyzed. An algorithm for identifying procedures related to slicing criteria is first presented and then a combinational slicing approach based on call stacks. During the slicing process, procedure is basic unit for dependence analysis and program dependence graph is a combination of dependence graphs for all independent procedures. Interfaces between procedures are realized by dependences among parameters and inter-procedure analysis is obtained by mapping actual to formal parameters or vice versa. This approach was applied to three programs with different size. Average ratio of the number of relevant procedures to that of the total is 0. 03% to 17. 1 %. It shows that our approach is beneficial for reducing analysis time and hence improved debugging response effectively.关键词
程序调试/程序切片/调用栈Key words
program debugging/program slicing/call stack分类
信息技术与安全科学引用本文复制引用
戚晓芳,周晓宇,徐晓晶,张迎周..一种组合式基于调用栈的程序切片方法[J].东南大学学报(自然科学版),2011,41(6):1171-1176,6.基金项目
国家自然科学基金资助项目(60873049, 60703086, 60903026). (60873049, 60703086, 60903026)