One-pass Pseudo Reverse Execution of C Programs

Japanese is here.

Abstract

We propose a method of speeding up pseudo reverse execution of
C programs by locating the target function call efficiently.

In the former method, the profiler function, inserted by the compiler
at the prologue of each function is overridden so that the program
records necessary informations about stack frame for later use.
When reverse execution is instructed, we (1)restart the program
from the beginning, traces stack and decides the target point
where the control should reach (scan pass), and then (2)restart
it again and stop it at that point (re-execute pass).

In our new method, we modified an assembly language output of
C compiler so that we can catch the exit of function calls.  So
we can simulate stack to know depth of the stack at run time and
decide the target point without ``scan pass''.

Measurement of the time of reverse execution and the overhead at
normal execution and at reverse execution is also included.

Back to my research index