Information Processing Letters
Supporting reverse execution for parallel programs
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimal tracing and incremental reexecution for debugging long-running programs
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Replay for concurrent non-deterministic shared-memory applications
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
CLIP: a checkpointing tool for message-passing parallel programs
SC '97 Proceedings of the 1997 ACM/IEEE conference on Supercomputing
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A survey of rollback-recovery protocols in message-passing systems
ACM Computing Surveys (CSUR)
Isolating cause-effect chains from computer programs
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Record/Play in the Presence of Benign Data Races
PDPTA '02 Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications - Volume 3
Efficient Incremental Checkpointing of Java Programs
DSN '00 Proceedings of the 2000 International Conference on Dependable Systems and Networks (formerly FTCS-30 and DCCA-8)
A message system supporting fault tolerance
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Issues in the Design of a Reflective Library for Checkpointing C++ Objects
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
A Perturbation-Free Replay Platform for Cross-Optimized Multithreaded Applications
IPDPS '01 Proceedings of the 15th International Parallel and Distributed Processing Symposium (IPDPS'01) - Volume 1
Record/replay for nondeterministic program executions
Communications of the ACM - Why CS students need math
ReVirt: enabling intrusion analysis through virtual-machine logging and replay
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Locating causes of program failures
Proceedings of the 27th international conference on Software engineering
Selective capture and replay of program executions
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Experimental evaluation of using dynamic slices for fault location
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Jockey: a user-space library for record-replay debugging
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Rx: treating bugs as allergies---a safe method to survive software failures
Proceedings of the twentieth ACM symposium on Operating systems principles
Automatic test factoring for java
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Isolating relevant component interactions with JINSI
Proceedings of the 2006 international workshop on Dynamic systems analysis
Dynamic slicing long running programs through execution fast forwarding
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Carving differential unit test cases from system test cases
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Debugging operating systems with time-traveling virtual machines
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Flashback: a lightweight extension for rollback and deterministic replay for software debugging
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Interprocedural dataflow analysis in the presence of large libraries
CC'06 Proceedings of the 15th international conference on Compiler Construction
Efficient solving of structural constraints
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Practical Object-Oriented Back-in-Time Debugging
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Design and Implementation of Operation Replay for Virtual Experiment
Edutainment '09 Proceedings of the 4th International Conference on E-Learning and Games: Learning by Playing. Game-based Education System Design and Development
Increasing Test Granularity by Aggregating Unit Tests
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Moles: tool-assisted environment isolation with closures
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Toward generating reducible replay logs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
CoDeSe: fast deserialization via code generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Checkpointing and replaying is an attractive technique that has been used widely at the operating/runtime system level to provide fault tolerance. Applying such a technique at the application level can benefit a range of software engineering tasks such as testing of long-running programs, automated debugging, and dynamic slicing. We propose a checkpointing/replaying technique for Java that operates purely at the language level, without the need for JVM-level or OS-level support. At the core of our approach are static analyses that select, at certain program points, a safe subset of the program state to capture and replay. Irrelevant statements before the checkpoint are eliminated using control-dependence-based slicing; the remaining statements together with the captured run-time values are used to indirectly recreate the call stack of the original program at the checkpoint. At the checkpoint itself and at certain subsequent program points, the replaying version restores parts of the program state that are necessary for execution of the surrounding method. Our experimental studies indicate that the proposed static and dynamic analyses have the potential to reduce significantly the execution time for replaying, with low run-time overhead for checkpointing.