ReCrashJ: a tool for capturing and reproducing program crashes in deployed applications

  • Authors:
  • Shay Artzi;Sunghun Kim;Michael D. Ernst

  • Affiliations:
  • IBM T. J. Watson Research Center, Hawthorne, NY, USA;University of Hong Kong, Hong Kong, Hong Kong;University of Washington, Seattle, WA, USA

  • Venue:
  • Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many programs have latent bugs that cause the program to fail. In order to fix a failing program, is it crucial to be able to reproduce the failure consistently. However, reproducing a failure can be difficult and time-consuming, especially when the failure is discovered by a user in a deployed application. We present ReCrash, an approach to reproduce failures efficiently, both locally and in deployed applications, without any changes to the host's environment, and with low execution overhead. During execution, ReCrash efficiently stores part of the state of method arguments. If the program fails, ReCrash uses the stored information to create unit tests that reproduce the failure. This is effective because programs written in object-oriented style rely mostly on near-by state. This demo presents ReCrashJ, an implementation of ReCrash for Java. We show the ReCrashJ Eclipse plug-in (for developers) and the ReCrashJ command-line modules (for deployed software).