Dynamic Reverse Code Generation for Backward Execution

https://doi.org/10.1016/j.entcs.2006.12.028Get rights and content
Under a Creative Commons license
open access

Abstract

The need for backward execution in debuggers has been raised a number of times. Backward execution helps a user naturally think backwards and, in turn, easily locate the cause of a bug. Backward execution has been implemented mostly by state-saving or checkpointing, which are inherently not scalable. In this paper, we present a method to generate reverse code, so that backtracking can be performed by executing reverse code. The novelty of our work is that we generate reverse code on-the-fly, while running a debugger, which makes it possible to apply the method even to debugging multi-threaded programs.

Keywords

debugging
reverse execution
reverse code generation

Cited by (0)