ABSTRACT
A wealth of recent research involves generating program monitors from declarative specifications. Doing this efficiently has proved challenging, and available implementations often produce infeasibly slow monitors. We demonstrate how to dramatically improve performance -- typically reducing overheads to within an order of magnitude of the program's normal runtime.
- Chris Allan, Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren, Sascha Kuzins, Ondrej Lhotak, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble. Adding Trace Matching with Free Variables to AspectJ. In OOPSLA '05, pages 345-364. ACM Press, 2005. Google ScholarDigital Library
- Pavel Avgustinov, Julian Tibble, Eric Bodden, Ondrej Lhotak, Laurie Hendren, Oege de Moor, Neil Ongkingco, and Ganesh Sittampalam. Efficient trace monitoring. Technical Report abc-2006-1, www.aspectbench.org, March 2006.Google ScholarDigital Library
- Remi Douence, Pascal Fradet, andMario Sudholt. Trace-based aspects. In AOSD '04, pages 141-150. Addison-Wesley, 2004.Google ScholarDigital Library
- Michael Martin, Benjamin Livshits, and Monica S. Lam. Finding application errors using PQL: a program query language. In OOPSLA '05, pages 365-383. ACM Press, 2005. Google ScholarDigital Library
- Robert Walker and Kevin Viggers. Implementing protocols via declarative event patterns. In ACM Sigsoft International Symposium on Foundations of Software Engineering (FSE-12), pages 159-169. ACM Press, 2004. Google ScholarDigital Library
Index Terms
- Efficient trace monitoring
Recommendations
The design and implementation of formal monitoring techniques
OOPSLA '07: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companionIn runtime monitoring, a programmer specifies a piece of code to execute when a trace of events occurs during program execution. Previous and related work has shown that runtime monitoring techniques can beuseful in order to validate or guarantee the ...
Efficient and expressive bytecode-level instrumentation for Java programs
AbstractWe present an efficient and expressive tool for the instrumentation of Java programs at the bytecode level. BISM (Bytecode-Level Instrumentation for Software Monitoring) is a lightweight Java bytecode instrumentation tool that features an ...
BISM: Bytecode-Level Instrumentation for Software Monitoring
Runtime VerificationAbstractBISM (Bytecode-level Instrumentation for Software Monitoring) is a lightweight Java bytecode instrumentation tool which features an expressive high-level control-flow-aware instrumentation language. The language follows the aspect-oriented ...
Comments