http://www.eng.utah.edu/~csl-sem/
The first is to increase participants' understanding of reversible and “time-traveling” debugging. A reversible debugger allows a person to step a program both forward and backward in time. The power to move backward in time is extremely powerful. For example, if a programmer finds that a variable contains an incorrect value, he or she can run the program backwards to the execution point at which the variable was most recently written. Reversibility has been implemented at multiple granularities including language runtimes, process boundaries, and hardware-level virtual machines. We will study recent research publications about the implementation of reversible debuggers and their application to challenging systems-relevant problems including concurrency, performance, and security.