Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1735997.1736002acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

Multi-stage replay with crosscut

Published: 17 March 2010 Publication History

Abstract

Deterministic record-replay has many useful applications, ranging from fault tolerance and forensics to reproducing and diagnosing bugs. When choosing a record-replay solution, the system administrator must choose a priori how comprehensively to record the execution and at what abstraction level to record it. Unfortunately, these choices may not match well with how the recording is eventually used. A recording may contain too little information to support the end use of replay, or it may contain more sensitive information than is allowed to be shown to the end user of replay. Similarly, fixing the abstraction level at the time of recording often leads to a semantic mismatch with the end use of replay.
This paper describes how to remedy these problems by adding customizable replay stages to create special-purpose logs for the end users of replay. Our system, called Crosscut, allows replay logs to be "sliced" along time and abstraction boundaries. Using this approach, users can create slices that include only the processes, applications, or components of interest, excluding parts that handle sensitive data. Users can also retarget the abstraction level of the replay log to higher-level platforms, such as Perl or Valgrind. Execution can then be augmented with additional analysis code at replay time, without disturbing the replayed components in the slice. Crosscut thus uses replay itself to transform logs into a more efficient, secure, and usable form for replay-based applications.
Our current Crosscut prototype builds on VMware Workstation's record-replay capabilities, and supports a variety of different replay environments. We show how Crosscut can create slices of only the parts of the computation of interest and thereby avoid leaking sensitive information, and we show how to retarget the abstraction level of the log to enable more convenient use during replay debugging.

References

[1]
Bacon, D. F., and Goldstein, S. C. Hardware-Assisted Replay of Multiprocessor Programs. In Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging (May 1991).
[2]
Bressoud, T. C., and Schneider, F. B. Hypervisor-based fault tolerance. ACM Transactions on Computer Systems 14, 1 (February 1996), 80--107.
[3]
Castro, M., Costa, M., and Martin, J.-P. Better Bug Reporting With Better Privacy. In Proceedings of the 2008 International Conference on Architectural Support for Programming Languages and Operating Systemst (ASPLOS) (March 2008), pp. 319--328.
[4]
Chow, J., Garfinkel, T., and Chen, P. M. Decoupling dynamic program analysis from execution in virtual environments. In Proceedings of the 2008 USENIX Technical Conference (June 2008), pp. 1--14.
[5]
Dunlap, G. W., King, S. T., Cinar, S., Basrai, M., and Chen, P. M. ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay. In Proceedings of the 2002 Symposium on Operating Systems Design and Implementation (December 2002), pp. 211--224.
[6]
Garfinkel, T., and Rosenblum, M. A Virtual Machine Introspection Based Architecture for Intrusion Detection. In Proceedings of the 2003 Network and Distributed System Security Symposium (NDSS) (February 2003).
[7]
Guo, Z., Wang, X., Tang, J., Liu, X., Xu, Z., Wu, M., Kaashoek, M. F., and Zhang, Z. R2: An ApplicationLevel Kernel for Record and Replay. In Proceedings of the 2008 Symposium on Operating Systems Design and Implementation (December 2008), pp. 193--208.
[8]
Hower, D. R., and Hill, M. D. Rerun: Exploiting Episodes for Lightweight memory Race Recording. In Proceedings of the 2008 International Symposium on Computer Architecture (June 2008), pp. 265--276.
[9]
Jiang, X., Wang, X., and Xu, D. Stealthy Malware Detection Through VMM-Based Out-of-the-Box Semantic View Reconstruction. In Proceedings of the 2007 ACM Conference on Computer and Communications Security (CCS) (November 2007), pp. 128--138.
[10]
Joshi, A., King, S. T., Dunlap, G. W., and Chen, P. M. Detecting past and present intrusions through vulnerability-specific predicates. In Proceedings of the 2005 Symposium on Operating Systems Principles (October 2005), pp. 91--104.
[11]
King, S. T., Dunlap, G. W., and Chen, P. M. Debugging operating systems with time-traveling virtual machines. In Proceedings of the 2005 USENIX Technical Conference (April 2005), pp. 1--15.
[12]
Lewis, B. Debugging backwards in time. In Proceedings of the 2003 Workshop on Automated and Algorithmic Debugging (September 2003).
[13]
Litzkow, M., and Solomon, M. Supporting Checkpointing and Process Migration outside the Unix Kernel. In Proceedings of the Winter 1992 USENIX Conference (January 1992).
[14]
Mellor-Crummey, J. M., and LeBlanc, T. J. A Software Instruction Counter. In Proceedings of the 1989 International Conference on Architectural Support for Programming Languages and Operating Systems (1989), pp. 78--86.
[15]
Montesinos, P., Ceze, L., and Torrellas, J. DeLorean: Recording and Deterministically Replaying Shared-Memory Multiprocessor Execution Efficiently. In Proceedings of the 2008 International Symposium on Computer Architecture (June 2008), pp. 289--300.
[16]
Napper, J., Alvisi, L., and Vin, H. A Fault-Tolerant Java Virtual Machine. In Proceedings of the 2003 International Conference on Dependable Systems and Networks (DSN) (June 2003).
[17]
Nethercote, N., and Seward, J. How to shadow every byte of memory used by a program. In Proceedings of the 2007 Conference on Virtual Execution Environments (June 2007).
[18]
Nethercote, N., and Seward, J. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proceedings of the 2007 Programming Language Design and Implementation Conference (June 2007).
[19]
Nightingale, E. B., Peek, D., Chen, P. M., and Flinn, J. Parallelizing security checks on commodity hardware. In Proceedings of the 2008 International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) (March 2008), pp. 308--318.
[20]
O'Callahan, R. Efficient collection and storage of indexed program traces. http://www.ocallahan.org/Amber.pdf, December 2006.
[21]
O'Callahan, R. Announcing chronomancer. http://weblogs.mozillazine.org/roc/archives/2007/08/announcing_chro.html, August 2007.
[22]
Seward, J., and Nethercote, N. Using Valgrind to detect undefined value errors with bit-precision. In Proceedings of the 2005 USENIX Technical Conference (April 2005).
[23]
Srinivasan, S., Kandula, S., Andrews, C., and Zhou, Y. Flashback: A light-weight rollback and deterministic replay extension for software debugging. In Proceedings of the 2004 USENIX Technical Conference (June 2004).
[24]
Tucek, J., Lu, S., Huang, C., Xanthos, S., and Zhou, Y. Triage: Diagnosing Production Run Failures at the User's Site. In Proceedings of the 2007 Symposium on Operating Systems Principles (October 2007), pp. 131--144.
[25]
Wallace, S., and Hazelwood, K. SuperPin: Parallelizing Dynamic Instrumentation for Real-Time Performance. In Proceedings of the 2007 International Symposium on Code Generation and Optimization (CGO) (March 2007), pp. 209--217.
[26]
Weiser, M. Programmers use slices when debugging. Communications of the ACM 25, 7 (July 1982), 446--452.
[27]
Xu, M., Bodik, R., and Hill, M. D. A Flight Data Recorder for Enabling Full-system Multiprocessor Deterministic Replay. In Proceedings of the 2003 International Symposium on Computer Architecture (June 2003).
[28]
Xu, M., Malyugin, V., Sheldon, J., Venkitachalam, G., and Weissman, B. ReTrace: Collecting Execution Trace with Virtual Machine Deterministic Replay. In Proceedings of the 2007 Workshop on Modeling, Benchmarking and Simulation (MoBS) (June 2007).

Cited By

View all
  • (2022)Bolt-on, Compact, and Rapid Program Slicing for NotebooksProceedings of the VLDB Endowment10.14778/3565838.356585515:13(4038-4047)Online publication date: 1-Sep-2022
  • (2022)ClusterRR: a record and replay framework for virtual machine clusterProceedings of the 18th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3516807.3516819(31-44)Online publication date: 25-Feb-2022
  • (2020)Non-intrusive Virtual Machine Analysis and Reverse Debugging with SWAT2020 IEEE 20th International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS51102.2020.00036(196-203)Online publication date: Dec-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '10: Proceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
March 2010
176 pages
ISBN:9781605589107
DOI:10.1145/1735997
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 7
    VEE '10
    July 2010
    161 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1837854
    Issue’s Table of Contents
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: 17 March 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. design
  2. experimentation
  3. performance
  4. replay
  5. security
  6. virtual machines

Qualifiers

  • Research-article

Conference

VEE '10

Acceptance Rates

Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)3
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Bolt-on, Compact, and Rapid Program Slicing for NotebooksProceedings of the VLDB Endowment10.14778/3565838.356585515:13(4038-4047)Online publication date: 1-Sep-2022
  • (2022)ClusterRR: a record and replay framework for virtual machine clusterProceedings of the 18th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3516807.3516819(31-44)Online publication date: 25-Feb-2022
  • (2020)Non-intrusive Virtual Machine Analysis and Reverse Debugging with SWAT2020 IEEE 20th International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS51102.2020.00036(196-203)Online publication date: Dec-2020
  • (2020)pRnR: A Parallel Record-Replay Framework for Virtual Machines2020 IEEE 38th International Conference on Computer Design (ICCD)10.1109/ICCD50377.2020.00106(610-618)Online publication date: Oct-2020
  • (2017)PROV2RACM Transactions on Internet Technology10.1145/306217617:4(1-24)Online publication date: 18-Aug-2017
  • (2016)Peeking into the Past: Efficient Checkpoint-Assisted Time-Traveling Debugging2016 IEEE 27th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2016.9(455-466)Online publication date: Oct-2016
  • (2015)Deterministic ReplayACM Computing Surveys10.1145/279007748:2(1-47)Online publication date: 24-Sep-2015
  • (2015)FluxProceedings of the Tenth European Conference on Computer Systems10.1145/2741948.2741955(1-17)Online publication date: 17-Apr-2015
  • (2014)Replay debuggingProceeding of the 41st annual international symposium on Computer architecuture10.5555/2665671.2665737(445-456)Online publication date: 14-Jun-2014
  • (2014)Replay debuggingACM SIGARCH Computer Architecture News10.1145/2678373.266573742:3(445-456)Online publication date: 14-Jun-2014
  • Show More Cited By

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