Title:
Instruction-level Reverse Execution for Debugging
Instruction-level Reverse Execution for Debugging
Author(s)
Akgul, Tankut
Mooney, Vincent John, III
Mooney, Vincent John, III
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
Abstract
Reverse execution provides a programmer with the ability to return a
program to a previous state in its execution history. The ability to
execute a program in reverse is advantageous for shortening software
development time. Conventional techniques for reverse execution rely
on saving a state into a record before the state is destroyed. State
saving introduces both memory and time overheads during forward execution.
Our proposed method introduces a reverse execution methodology at the
assembly instruction level with low memory and time overheads. The
methodology generates from a program a reverse program by which a
destroyed state is almost always regenerated rather than being restored
from a record. This significantly reduces state saving.
The methodology has been implemented on a PowerPC processor with a custom
made debugger. As compared to previous work using state saving
techniques, the experimental results show 2.5X to 400X memory overhead
reduction for the tested benchmarks. Furthermore, the results with the
same benchmarks show an average of 4.1X to 5.7X reduction in execution
time overhead.
Sponsor
Date Issued
2002
Extent
913397 bytes
Resource Type
Text
Resource Subtype
Technical Report