A fast assembly level reverse execution method via dynamic slicing

被引:8
作者
Akgul, T [1 ]
Mooney, VJ [1 ]
Pande, S [1 ]
机构
[1] Georgia Inst Technol, Sch Elect & Comp Engn, Atlanta, GA 30332 USA
来源
ICSE 2004: 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2004年
关键词
D O I
10.1109/ICSE.2004.1317474
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
One of the most time consuming parts of debugging is trying to locate a bug. In this context, there are two powerful debugging aids which shorten debug time considerably: reverse execution and dynamic slicing. Reverse execution eliminates the need for repetitive program restarts every time a bug location is missed. Dynamic slicing, on the other hand, isolates code parts that influence an erroneous variable at a program point. In this paper we present an approach which provides assembly level reverse execution along a dynamic slice. In this way, a programmer not only can find the instructions relevant to a bug, but also can obtain runtime values of variables in a dynamic slice while traversing the slice backwards in execution history. Reverse execution along a dynamic slice skips recovering unnecessary program state; therefore, it is potentially faster than full-scale reverse execution. The experimental results with four different benchmarks show a wide range of speedups from 1.3X for a small program with few data inputs to six orders of magnitude (1,928,500X)for 400x400 matrix multiply. Furthermore, our technique is very memory efficient. Our benchmark measurements show between 3.4X and 2240X memory overhead reduction as compared to our implementation of the same features using traditional approaches.
引用
收藏
页码:522 / 531
页数:10
相关论文
共 21 条
[1]  
AGRAWAL H, 1990, SIGPLAN NOTICES, V25, P246, DOI 10.1145/93548.93576
[2]   AN EXECUTION-BACKTRACKING APPROACH TO DEBUGGING [J].
AGRAWAL, H ;
DEMILLO, RA ;
SPAFFORD, EH .
IEEE SOFTWARE, 1991, 8 (03) :21-26
[3]  
AKGUL T, 2002, GITCC0249
[4]  
Akgul T., 2002, ACM SIGSOFT SOFTWARE, V28, P18
[5]  
[Anonymous], 1988, P 1988 ACM SIGPLAN S
[6]  
Beszédes A, 2001, FIFTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, P105, DOI 10.1109/CSMR.2001.914974
[7]  
Booth S. P., 1997, P 3 INT WORKSH AUT A, P171
[8]  
CAROTHERS C, 1999, ACM T MODELING COMPU, V9
[9]   Reverse execution of Java']Java bytecode [J].
Cook, JJ .
COMPUTER JOURNAL, 2002, 45 (06) :608-619
[10]  
GUPTA R, 1992, TR9207 U PITTSB