This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
26th International Conference on Software Engineering (ICSE'04)
A Fast Assembly Level Reverse Execution Method via Dynamic Slicing
Edinburgh, Scotland, United Kingdom
May 23-May 28
ISBN: 0-7695-2163-0
Tankut Akgul, Georgia Institute of Technology
Vincent J. Mooney III, Georgia Institute of Technology
Santosh Pande, Georgia Institute of Technology

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.

Citation:
Tankut Akgul, Vincent J. Mooney III, Santosh Pande, "A Fast Assembly Level Reverse Execution Method via Dynamic Slicing," icse, pp.522-531, 26th International Conference on Software Engineering (ICSE'04), 2004
Usage of this product signifies your acceptance of the Terms of Use.