Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A portable sampling-based profiler for Java virtual machines
Proceedings of the ACM 2000 conference on Java Grande
Java Virtual Machine Specification
Java Virtual Machine Specification
JAsCo: an aspect-oriented approach tailored for component based software development
Proceedings of the 2nd international conference on Aspect-oriented software development
Just-in-time aspects: efficient dynamic weaving for Java
Proceedings of the 2nd international conference on Aspect-oriented software development
Altering Java Semantics via Bytecode Manipulation
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Load-Time Structural Reflection in Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
CC '00 Proceedings of the 9th International Conference on Compiler Construction
AspectS - Aspect-Oriented Programming with Squeak
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
Anomaly Detection Using Call Stack Information
SP '03 Proceedings of the 2003 IEEE Symposium on Security and Privacy
*J: a tool for dynamic analysis of Java programs
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Profiling Java applications using code hotswapping and dynamic call graph revelation
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Visualization of Java workloads using ternary diagrams
WOSP '04 Proceedings of the 4th international workshop on Software and performance
Proceedings of the 3rd international conference on Aspect-oriented software development
Fast, accurate call graph profiling
Software—Practice & Experience
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Measuring the dynamic behaviour of AspectJ programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
A method-level comparison of the Java Grande and SPEC JVM98 benchmark suites: Research Articles
Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande–ISCOPE Conference Part II
An execution layer for aspect-oriented programming languages
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
Adapting virtual machine techniques for seamless aspect support
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Transparent program transformations in the presence of opaque code
Proceedings of the 5th international conference on Generative programming and component engineering
Cork: dynamic memory leak detection for garbage-collected languages
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Aspect-Based Instrumentation for Locating Memory Leaks in Java Programs
COMPSAC '07 Proceedings of the 31st Annual International Computer Software and Applications Conference - Volume 02
Precise memory leak detection for java software using container profiling
Proceedings of the 30th international conference on Software engineering
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
ReCrash: Making Software Failures Reproducible by Preserving Object States
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Platform-independent profiling in a virtual execution environment
Software—Practice & Experience
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Parallelizing calling context profiling in virtual machines on multicores
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
A design pattern coupling role and component concepts: Application to medical software
Journal of Systems and Software
Listener latency profiling: Measuring the perceptible performance of interactive Java applications
Science of Computer Programming
Challenges for refinement and composition of instrumentations: position paper
SC'12 Proceedings of the 11th international conference on Software Composition
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
Science of Computer Programming
Hi-index | 0.00 |
Aspect-oriented programming (AOP) has been successfully applied to application code thanks to techniques such as Java bytecode instrumentation. Unfortunately, with existing AOP frameworks for Java such as AspectJ, aspects cannot be woven into the standard Java class library. This restriction is particularly unfortunate for aspects that would benefit from comprehensive aspect weaving with complete method coverage, such as profiling or debugging aspects. In this article we present MAJOR, a new tool for comprehensive aspect weaving, which ensures that aspects are woven into all classes loaded in a Java Virtual Machine, including those in the standard Java class library. MAJOR includes the pluggable module CARAJillo, which supports efficient access to a complete and customizable calling context representation. We validate our approach with three case studies. Firstly, we weave existing profiling aspects with MAJOR which otherwise would generate incomplete profiles. Secondly, we introduce an aspect for memory leak detection that also benefits from comprehensive weaving. Thirdly, we present an aspect subsuming the functionality of ReCrash, an existing tool based on low-level bytecode instrumentation techniques that generates unit tests to reproduce program failures. Our aspect-based tools are concisely implemented in a few lines of code, and leverage MAJOR and CARAJillo for comprehensive aspect weaving and for efficient access to calling context information.