No CrossRef data available.
Published online by Cambridge University Press: 01 November 2008
Tracers provide users with useful information about program executions. In thisarticle, we propose a “tracer driver”. From a single tracer,it provides a powerful front-end enabling multiple dynamic analysis tools to beeasily implemented, while limiting the overhead of the trace generation. Therelevant execution events are specified by flexible event patterns and a largevariety of trace data can be given either systematically or “ondemand”. The proposed tracer driver has been designed in the contextof constraint logic programming (CLP); experiments have been made withinGNU-Prolog. Execution views provided by existing tools have been easily emulatedwith a negligible overhead. Experimental measures show that the flexibility andpower of the described architecture lead to good performance. The tracer driveroverhead is inversely proportional to the average time between two tracedevents. Whereas the principles of the tracer driver are independent of thetraced programming language, it is best suited for high-level languages, such asCLP, where each traced execution event encompasses numerous low-level executionsteps. Furthermore, CLP is especially hard to debug. The current environments donot provide all the useful dynamic analysis tools. They can significantlybenefit from our tracer driver which enables dynamic analyses to be integratedat a very low cost.