Seyster/Dixit/Huang/Grosu/Havelund/Smolka/Stoller/Zadok

Aspect-Oriented Instrumentation with GCC.*

J. Seyster, K. Dixit, X. Huang, R. Grosu, K. Havelund, S.A. Smolka, S.D. Stoller and E. Zadok

The addition of plug-in support in the latest release of GCC makes it an attractive platform for runtime instrumentation, as GCC plug-ins can directly add instrumentation by transforming the s intermediate representation. Such transformations, however, require expert knowledge of GCC internals. To address this situation, we present the InterAspect program-instrumentation framework, which allows instrumentation plug-ins to be developed using the familiar vocabulary of Aspect-Oriented Programming pointcuts, join points, and advice functions. InterAspect also supports powerful customized instrumentation, where specific information about each join point in a pointcut, as well as the results of static analysis, can be used to customize the inserted instrumentation. We introduce the InterAspect API and present several examples that illustrate how it can be applied to useful runtime verification problems.

In Proc. of RV'10, the 1st International Conference on Runtime Verification, Malta, November, 2010, Springer LNCS.

*This work was supported by the NSF Faculty Early Career Development Award CCR01-33583 and the NSF CCF05-23863 Award.