skip to main content
10.1145/1595696.1595749acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
demonstration

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

Published:24 August 2009Publication History

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).

References

  1. S. Artzi, S. Kim, and M. D. Ernst. Recrash: Making software failures reproducible by preserving object states. In ECOOP, pages 542--565, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Artzi, J. Quinonez, A. Kieżun, and M. D. Ernst. A formal definition and evaluation of parameter immutability. ASE, 16(1):145--192, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Clause and A. Orso. A technique for enabling and supporting debugging of field failures. In ICSE, pages 261--270, May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Csallner and Y. Smaragdakis. JCrasher: an automatic robustness tester for Java. Software: Practice and Experience, 34(11):1025--1050, Sep. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Csallner and Y. Smaragdakis. Check 'n' Crash: Combining static checking and testing. In ICSE, pages 422--431, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. A. S. de Oliveira, J. R. Crandall, G. Wassermann, S. F. Wu, Z. Su, and F. T. Chong. ExecRecorder: VM-based full-system replay for attack analysis and system recovery. In ASID, pages 66--71, Oct. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. G. W. Dunlap, S. T. King, S. Cinar, M. A. Basrai, and P. M. Chen. ReVirt: Enabling intrusion analysis through virtual-machine logging and replay. In OSDI, pages 211--224, Dec. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. D. Ernst. Type annotations specification (jsr 308). http://pag.csail.mit.edu/jsr308/, Sep. 12, 2008.Google ScholarGoogle Scholar
  9. D. Geels, G. Altekar, S. Shenker, and I. Stoica. Replay debugging for distributed applications. In USENIX, pages 289--300, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Narayanasamy, G. Pokam, and B. Calder. BugNet: Continuously recording program execution for deterministic replay debugging. In ISCA, pages 284--295, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. M. Srinivasan, S. Kandula, C. R. Andrews, and Y. Zhou. Flashback: A lightweight extension for rollback and deterministic replay for software debugging. In USENIX, pages 29--44, June/July 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Xu, R. Bodik, and M. D. Hill. A "flight data recorder " for enabling full-system multiprocessor deterministic replay. In ISCA, pages 122--135, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            ESEC/FSE '09: Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
            August 2009
            408 pages
            ISBN:9781605580012
            DOI:10.1145/1595696

            Copyright © 2009 Copyright is held by the owner/author(s)

            Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 24 August 2009

            Check for updates

            Qualifiers

            • demonstration

            Acceptance Rates

            ESEC/FSE '09 Paper Acceptance Rate32of217submissions,15%Overall Acceptance Rate112of543submissions,21%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader