Abstract
As software grows in complexity, there is a need to check theruntime behavior of programs for potentially hazardous runtimestates, and take the appropriate action. The tracecut mechanism,which allows one to match sequences of runtime events against aproperty specification given as a regular expression, providesus with this functionality.In this thesis, we show how tracecut functionality can be appliedto C programs by making use of InterAspect, an aspect-orientedinstrumentation framework. InterAspect is a GCC compiler plug-inthat performs runtime instrumentation at the GIMPLE level, GCC'sintermediate representation. Our approach interprets a tracecutspecification given as a regular expression as a finite state machine,and generates the code needed to perform the state machine transitions.The utility of our approach is illustrated by two case studies, oneinvolving a tracecut for a simple data-source iterator, and the otherinvolving a tracecut specification of file open-close behavior. Thelatter tracecut is applied to the bzip2 file compression utility