A flexible automatic source-level instrumentation framework for dynamic program analysis

As programs become increasingly complex, tools for monitoring and performing dynamic analysis of running software are very much desirable. A flexible program source-level instrumentation framework is proposed in the paper. Unlike most of the existing tools, the proposed instrumentation framework has the ability to instrument for various events, the flexibility to instrument (or not to instrument) specific events and mechanisms to control instrumentation overhead, and it also provides convenience for applications to process the collected runtime instrumentation information for performing dynamic analysis. A prototype of this instrumentation framework is implemented and evaluated on the KLEE Symbolic Virtual Machine.