ABSTRACT
Program source is an intermediate representation of software; it lies between a developer's intention and the hardware's execution. Despite advances in languages and development tools, source itself and the applications we use to view it remain an essentially static representation of software, from which developers can spend considerable energy postulating actual behavior.
Emerging techniques in execution logging promise to provide large shared repositories containing high-fidelity recordings of deployed, production software. Tralfamadore is a system that combines source and execution trace analysis to capitalize on these recordings, and to expose information from the "experience" of real execution within the software development environment, allowing developers to inform their understanding of source based on how it behaves during real execution.
- F. Bellard. QEMU, a fast and portable dynamic translator. In USENIX Annual Technical Conference, 2005. Google ScholarDigital Library
- S. Bhansali, W. Chen, S. de Jong, A. Edwards, R. Murray, M. Drinić, D. Miho\vcka, and J. Chau. Framework for instruction-level tracing and analysis of program executions. In Proceedings of the 2nd International Conference on Virtual Execution Environments, 2006. Google ScholarDigital Library
- J. Chow, T. Garfinkel, and P. M. Chen. Decoupling dynamic program analysis from execution in virtual environments. In USENIX Annual Technical Conference, 2008. Google ScholarDigital Library
- 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 Proceedings of the 5th symposium on Operating Systems Design and Implementation, 2002. Google ScholarDigital Library
- D. Engler and K. Ashcraft. RacerX: effective, static detection of race conditions and deadlocks. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, 2003. Google ScholarDigital Library
- S. Goldsmith, R. O'Callahan,, and A. Aiken. Relational queries over program traces. In Proceedings of the ACM SIGPLAN 2005 Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarDigital Library
- Intel. Intel 64 and ia-32 architectures software developer's manual volume 3b: System programming guide. http://www.intel.com/products/processor/manuals/, 2008.Google Scholar
- S. T. King, G. W. Dunlap, and P. M. Chen. Debugging operating systems with time-traveling virtual machines. In USENIX Annual Technical Conference, 2005. Google ScholarDigital Library
- M. Mackall. Mercurial. http://www.selenic.com/mercurial/, 2005.Google Scholar
- M. Martin, B. Livshits, and M. S. Lam. Finding application errors and security flaws using PQL: a program query language. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarDigital Library
- N. Nethercote and J. Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, 2007. Google ScholarDigital Library
- R. O'Callahan. Chronomancer: C/C trace-based debugger based on chronicle and eclipse. http://code.google.com/p/chronomancer/, 2008.Google Scholar
- M. Weiser. Program slicing. In Proceedings of the 5th International Conference on Software Engineering, 1981. Google ScholarDigital Library
- M. Xu, R. Bodik, and M. D. Hill. A "flight data recorder" for enabling full-system multiprocessor deterministic replay. In Proceedings of the 30th Annual International Symposium on Computer Architecture, 2003. Google ScholarDigital Library
- M. Xu, V. Malyugin, J. Sheldon, G. Venkitachalam, and B. Weissman. Retrace: Collecting execution trace with virtual machine deterministic replay. In Third Annual Workshop on Modeling, Benchmarking and Simulation, held in conjunction with the 34th Annual International Symposium on Computer Architecture, 2007.Google Scholar
Index Terms
- Tralfamadore: unifying source code and execution experience
Recommendations
A review on exception analysis
Context: Exception handling has become popular in most major programming languages, including Ada, C++, Java, and ML. Since exception handling was introduced in programming languages, there have been various kinds of exception analyses, which analyze ...
The Symbolic Execution Debugger (SED): a platform for interactive symbolic execution, debugging, verification and more
AbstractThe Symbolic Execution Debugger (SED), is an extension of the [InlineMediaObject not available: see fulltext.] debug platform for interactive debuggers based on symbolic execution. The SED comes with a static symbolic execution engine for ...
A catalogue of bug patterns for exception handling in aspect-oriented programs
PLoP '08: Proceedings of the 15th Conference on Pattern Languages of ProgramsAspects allow a developer to externally add new functionality to a program. This additional functionality may also throw new exceptions that will flow through the program execution until they are handled. Moreover, aspects can also be used to handle ...
Comments