ACM Home Page
Please provide us with feedback. Feedback
ReCrashJ: a tool for capturing and reproducing program crashes in deployed applications
Full text PdfPdf (280 KB)
Source
Foundations of Software Engineering archive
Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium table of contents
Amsterdam, The Netherlands
DEMONSTRATION SESSION: Tool demonstrations table of contents
Pages 295-296  
Year of Publication: 2009
ISBN:978-1-60558-001-2
Authors
Shay Artzi  IBM T. J. Watson Research Center, Hawthorne, NY, USA
Sunghun Kim  University of Hong Kong, Hong Kong, Hong Kong
Michael D. Ernst  University of Washington, Seattle, WA, USA
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 26,   Citation Count: 0
Additional Information:

abstract   references   index terms  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1595696.1595749
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked 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.
 
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.
 
3
J. Clause and A. Orso. A technique for enabling and supporting debugging of field failures. In ICSE, pages 261--270, May 2007.
 
4
C. Csallner and Y. Smaragdakis. JCrasher: an automatic robustness tester for Java. Software: Practice and Experience, 34(11):1025--1050, Sep. 2004.
 
5
C. Csallner and Y. Smaragdakis. Check 'n' Crash: Combining static checking and testing. In ICSE, pages 422--431, May 2005.
 
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.
 
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.
 
8
M. D. Ernst. Type annotations specification (jsr 308). http://pag.csail.mit.edu/jsr308/, Sep. 12, 2008.
 
9
D. Geels, G. Altekar, S. Shenker, and I. Stoica. Replay debugging for distributed applications. In USENIX, pages 289--300, June 2006.
 
10
S. Narayanasamy, G. Pokam, and B. Calder. BugNet: Continuously recording program execution for deterministic replay debugging. In ISCA, pages 284--295, June 2005.
 
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.
 
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.