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

Retroactive aspects: programming in the past

Published: 18 July 2011 Publication History
  • Get Citation Alerts
  • Abstract

    We present a novel approach to the problem of dynamic program analysis: writing analysis code directly into the program source, but evaluating it against a recording of the original program's execution. This approach allows developers to reason about their program in the familiar context of its actual source, and take full advantage of program semantics, data structures, and library functionality for understanding execution. It also gives them the advantage of hindsight, letting them easily analyze unexpected behavior after it has occurred. Our position is that writing offline analysis as retroactive aspects provides a unifying approach that developers will find natural and powerful.

    References

    [1]
    VAssert programming guide, 2008.
    [2]
    ACC: the AspeCt-oriented c compiler. http://research.msrg.utoronto.ca/ACC, 2009.
    [3]
    F. Bellard. QEMU, a fast and portable dynamic translator. In USENIX Annual Technical Conference, 2005.
    [4]
    E. Bodden and K. Havelund. Racer: effective race detection using aspectj. In Proceedings of the 2008 international symposium on Software testing and analysis, ISSTA '08, pages 155--166, New York, NY, USA, 2008. ACM. ACM ID: 1390650.
    [5]
    F. Chen and G. Roşu. Mop: an efficient and generic runtime verification framework. In ACM SIGPLAN Notices, OOPSLA '07, pages 569--588, New York, NY, USA, 2007. ACM. ACM ID: 1297069.
    [6]
    J. Choi and B. Alpern. DejaVu: Deterministic Java Replay Debugger for Jalapeno Java Virtual Machine. OOPSLA 2000 Companion, 2000.
    [7]
    J. D. Choi, B. Alpern, T. Ngo, M. Sridharan, and J. Vlissides. A perturbation-free replay platform for cross-optimized multithreaded applications. In Parallel and Distributed Processing Symposium., Proceedings 15th International, 2001.
    [8]
    J. Chow, T. Garfinkel, and P. M. Chen. Decoupling dynamic program analysis from execution in virtual environments. In USENIX Annual Technical Conference, 2008.
    [9]
    J. Cook and A. Nusayr. Using AOP for Detailed Runtime Monitoring Instrumentation. In WODA 2008: the sixth international workshop on dynamic analysis.
    [10]
    L. Damas and R. Milner. Principal type-schemes for functional programs. In Principles of Programming Languages, Albuquerque, New Mexico, 1982.
    [11]
    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. Operating Systems Design and Implementation, 2002.
    [12]
    S. F. Goldsmith, R. O'Callahan, and A. Aiken. Relational queries over program traces. In Object-Oriented Programming, Systems, Languages, and Applications, page 402, 2005.
    [13]
    A. Joshi, S. T. King, G. W. Dunlap, and P. M. Chen. Detecting past and present intrusions through vulnerability-specific predicates. In Proceedings of the twentieth ACM symposium on Operating systems principles, SOSP '05, pages 91--104, New York, NY, USA, 2005. ACM.
    [14]
    G. Lefebvre, B. Cully, M. J. Feeley, N. C. Hutchinson, and A. Warfield. Tralfamadore: unifying source code and execution experience. In EuroSys, 2009.
    [15]
    B. Lewis. Debugging backwards in time. In Automated and Analysis-Driven Debugging, 2003.
    [16]
    C. K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. In Programming Language Design and Implementation, 2005.
    [17]
    G. Necula, S. McPeak, S. Rahul, and W. Weimer. CIL: intermediate language and tools for analysis and transformation of c programs. In Compiler Construction. 2002.
    [18]
    T. Ngo and J. Barton. Debugging by remote reflection. In Euro-Par 2000 Parallel Processing, pages 1031--1038, 2000.
    [19]
    E. B. Nightingale, D. Peek, P. M. Chen, and J. Flinn. Parallelizing security checks on commodity hardware. In Architectural Support for Programming Languages and Operating Systems, 2008.
    [20]
    A. Orso and B. Kennedy. Selective capture and replay of program executions. In ACM SIGSOFT Software Engineering Notes, volume 30, pages 1--7, New York, NY, USA, May 2005. ACM. ACM ID: 1083251.
    [21]
    G. Pothier, É. Tanter, and J. Piquer. Scalable omniscient debugging. ACM SIGPLAN Notices, 42(10), 2007.
    [22]
    V. Schuppan, M. Baur, and A. Biere. JVM independent replay in java. Electronic Notes in Theoretical Computer Science, 113:85--104, Jan. 2005.
    [23]
    M. X. Sheldon, G. V. Weissman, and V. M. Inc. Retrace: Collecting execution trace with virtual machine deterministic replay. In Modeling, Benchmarking and Simulation, 2007.
    [24]
    A. Srivastava and A. Eustace. ATOM: a system for building customized program analysis tools. In Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pages 196--205, Orlando, Florida, United States, 1994. ACM.

    Cited By

    View all
    • (2023)R3: Record-Replay-Retroaction for Database-Backed ApplicationsProceedings of the VLDB Endowment10.14778/3611479.361151016:11(3085-3097)Online publication date: 24-Aug-2023
    • (2018)Towards Time Travel in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219499(266-269)Online publication date: 25-Jun-2018
    • (2018)Retro-λProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3210285(76-87)Online publication date: 25-Jun-2018
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    WODA '11: Proceedings of the Ninth International Workshop on Dynamic Analysis
    July 2011
    44 pages
    ISBN:9781450308113
    DOI:10.1145/2002951
    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

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 July 2011

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. aspect-oriented programming
    2. deterministic replay
    3. dynamic analysis
    4. execution mining

    Qualifiers

    • Research-article

    Conference

    ISSTA '11
    Sponsor:

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)R3: Record-Replay-Retroaction for Database-Backed ApplicationsProceedings of the VLDB Endowment10.14778/3611479.361151016:11(3085-3097)Online publication date: 24-Aug-2023
    • (2018)Towards Time Travel in Distributed Event-sourced SystemsProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3219499(266-269)Online publication date: 25-Jun-2018
    • (2018)Retro-λProceedings of the 12th ACM International Conference on Distributed and Event-based Systems10.1145/3210284.3210285(76-87)Online publication date: 25-Jun-2018
    • (2016)On the Potential of Event Sourcing for Retroactive Actor-based ProgrammingFirst Workshop on Programming Models and Languages for Distributed Computing10.1145/2957319.2957378(1-5)Online publication date: 17-Jul-2016
    • (2015)Essential retroactive weavingCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2736751(52-57)Online publication date: 16-Mar-2015

    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