Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1882291.1882322acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Language-based replay via data flow cut

Published: 07 November 2010 Publication History

Abstract

A replay tool aiming to reproduce a program's execution interposes itself at an appropriate replay interface between the program and the environment. During recording, it logs all non-deterministic side effects passing through the interface from the environment and feeds them back during replay. The replay interface is critical for correctness and recording overhead of replay tools.
iTarget is a novel replay tool that uses programming language techniques to automatically seek a replay interface that both ensures correctness and minimizes recording overhead. It performs static analysis to extract data flows, estimates their recording costs via dynamic profiling, computes an optimal replay interface that minimizes the recording overhead, and instruments the program accordingly for interposition. Experimental results show that iTarget can successfully replay complex C programs, including Apache web server and Berkeley DB, and that it can reduce the log size by up to two orders of magnitude and slowdown by up to 50%.

References

[1]
L. O. Andersen. Program Analysis and Specialization of the C Programming Language. PhD thesis, University of Copenhagen, 1994.
[2]
S. Bhansali, W.-K. Chen, S. de Jong, A. Edwards, R. Murray, M. Drinić, D. Mihočka, and J. Chau. Framework for instruction-level tracing and analysis of program executions. In VEE, 2006.
[3]
S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, and X. Zheng. Secure web applications via automatic partitioning. In SOSP, 2007.
[4]
T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. MIT Press, 3rd edition, 2009.
[5]
J. Devietti, B. Lucia, L. Ceze, and M. Oskin. DMP: Deterministic shared memory multiprocessing. In ASPLOS, 2009.
[6]
E. A. Dinic. Algorithm for solution of a problem of maximum flow in networks with power estimation. Soviet Mathematics Doklady, 11(5):1277--1280, 1970.
[7]
G. Dunlap, S. T. King, S. Cinar, M. Basrat, and P. Chen. ReVirt: enabling intrusion analysis through virtual-machine logging and replay. In OSDI, 2002.
[8]
S. Elbaum, H. N. Chin, M. B. Dwyer, and J. Dokulil. Carving differential unit test cases from system test cases. In FSE, 2006.
[9]
D. Geels, G. Altekar, P. Maniatis, T. Roscoe, and I. Stoica. Friday: Global comprehension for distributed replay. In NSDI, 2007.
[10]
D. Geels, G. Altekar, S. Shenker, and I. Stoica. Replay debugging for distributed applications. In USENIX ATC, 2006.
[11]
Z. Guo, X. Wang, J. Tang, X. Liu, Z. Xu, M. Wu, M. F. Kaashoek, and Z. Zhang. R2: An application-level kernel for record and replay. In OSDI, 2008.
[12]
S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. In PLDI, 1988.
[13]
A. Joshi, S. T. King, G. W. Dunlap, and P. M. Chen. Detecting past and present intrusions through vulnerability-specific predicates. In SOSP, 2005.
[14]
C. Killian, J. W. Anderson, R. Jhala, and A. Vahdat. Life, death, and the critical transition: Finding liveness bugs in systems code. In NSDI, 2007.
[15]
S. T. King, G. W. Dunlap, and P. M. Chen. Debugging operating systems with time-traveling virtual machines. In USENIX ATC, 2005.
[16]
R. Konuru, H. Srinivasan, and J.-D. Choi. Deterministic replay of distributed Java applications. In IPDPS, 2000.
[17]
X. Liu, Z. Guo, X. Wang, F. Chen, X. Lian, J. Tang, M. Wu, M. F. Kaashoek, and Z. Zhang. D3S: Debugging deployed distributed systems. In NSDI, 2008.
[18]
F. Long, X. Wang, and Y. Cai. API hyperlinking via structural overlap. In ESEC/FSE, 2009.
[19]
S. McCamant and M. D. Ernst. Quantitative information flow as network flow capacity. In PLDI, 2008.
[20]
Microsoft. The Phoenix compiler framework. http://research.microsoft.com/phoenix/.
[21]
S. Narayanasamy, G. Pokam, and B. Calder. BugNet: Continuously recording program execution for deterministic replay debugging. In ISCA, 2005.
[22]
N. Nethercote and J. Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. In PLDI, 2007.
[23]
M. Olszewski, J. Ansel, and S. Amarasinghe. Kendo: Efficient deterministic multithreading in software. In ASPLOS, 2009.
[24]
A. Orso and B. Kennedy. Selective capture and replay of program executions. In WODA, 2005.
[25]
M. P. Robillard. Automatic generation of suggestions for program investigation. In ESEC/FSE, 2005.
[26]
M. Ronsse and K. D. Bosschere. RecPlay: A fully integrated practical record/replay system. TOCS, 17(2):133--152, 1999.
[27]
M. Ronsse, K. D. Bosschere, and J. C. de Kergommeaux. Execution replay for an MPI-based multi-threaded runtime system. In ParCo, 1999.
[28]
M. Ronsse, M. Christiaens, and K. D. Bosschere. Cyclic debugging using execution replay. In International Conference on Computational Science, 2001.
[29]
B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Global value numbers and redundant computations. In POPL, 1998.
[30]
D. Saff and M. D. Ernst. Mock object creation for test factoring. In PASTE, 2004.
[31]
Y. Saito. Jockey: A user-space library for record-replay debugging. In AADEBUG, 2005.
[32]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: a dynamic data race detector for multithreaded programs. TOCS, 15(4):391--411, 1997.
[33]
S. Srinivasan, C. Andrews, S. Kandula, and Y. Zhou. Flashback: A light-weight extension for rollback and deterministic replay for software debugging. In USENIX ATC, 2004.
[34]
J. Steven, P. Chandra, B. Fleck, and A. Podgurski. jRapture: A capture/replay tool for observation-based testing. In ISSTA, 2000.
[35]
A. Tolmach and A. W. Appel. A debugger for Standard ML. Journal of Functional Programming, 5(2):155--200, 1995.
[36]
J. W. Voung, R. Jhala, and S. Lerner. RELAY: Static race detection on millions of lines of code. In ESEC/FSE, 2007.
[37]
M. Weiser. Program slicing. In ICSE, 1981.
[38]
M. Xu, R. Bodík, and M. D. Hill. A "flight data recorder" for enabling full-system multiprocessor deterministic replay. In ISCA, 2003.
[39]
J. Yang, T. Chen, M. Wu, Z. Xu, X. Liu, H. Lin, M. Yang, F. Long, L. Zhang, and L. Zhou. MODIST: Transparent model checking of unmodified distributed systems. In NSDI, 2009.
[40]
X. Zhang, S. Tallam, and R. Gupta. Dynamic slicing long running programs through execution fast forwarding. In FSE, 2006.

Cited By

View all
  • (2017)DemoMatch: API discovery from demonstrationsACM SIGPLAN Notices10.1145/3140587.306238652:6(64-78)Online publication date: 14-Jun-2017
  • (2017)DemoMatch: API discovery from demonstrationsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062386(64-78)Online publication date: 14-Jun-2017
  • (2015)TARDISProceedings of the 14th International Conference on Information Processing in Sensor Networks10.1145/2737095.2737096(286-297)Online publication date: 13-Apr-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FSE '10: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
November 2010
302 pages
ISBN:9781605587912
DOI:10.1145/1882291
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 November 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data flow
  2. graph cut
  3. instrumentation
  4. replay

Qualifiers

  • Research-article

Conference

SIGSOFT/FSE'10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2017)DemoMatch: API discovery from demonstrationsACM SIGPLAN Notices10.1145/3140587.306238652:6(64-78)Online publication date: 14-Jun-2017
  • (2017)DemoMatch: API discovery from demonstrationsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062386(64-78)Online publication date: 14-Jun-2017
  • (2015)TARDISProceedings of the 14th International Conference on Information Processing in Sensor Networks10.1145/2737095.2737096(286-297)Online publication date: 13-Apr-2015
  • (2014)Empirically revisiting the test independence assumptionProceedings of the 2014 International Symposium on Software Testing and Analysis10.1145/2610384.2610404(385-396)Online publication date: 21-Jul-2014
  • (2014)Efficiently, effectively detecting mobile app bugs with AppDoctorProceedings of the Ninth European Conference on Computer Systems10.1145/2592798.2592813(1-15)Online publication date: 14-Apr-2014
  • (2012)Automated concurrency-bug fixingProceedings of the 10th USENIX conference on Operating Systems Design and Implementation10.5555/2387880.2387902(221-236)Online publication date: 8-Oct-2012
  • (2011)Partial replay of long-running applicationsProceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering10.1145/2025113.2025135(135-145)Online publication date: 5-Sep-2011
  • (2011)Toward generating reducible replay logsProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993528(246-257)Online publication date: 4-Jun-2011
  • (2011)Toward generating reducible replay logsACM SIGPLAN Notices10.1145/1993316.199352846:6(246-257)Online publication date: 4-Jun-2011

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media