A number of hardware and software techniques have been proposed to detect dynamic program behaviors that may indicate a bug in a program. Because these techniques suffer from high overheads they are useful in finding bugs in programs before they are released, but are significantly less useful in finding the much harder to detect bugs in long-running programs – the bugs that are the most difficult to find using traditional techniques. In this paper we propose the Artemis compiler-based instrumentation framework that complements many pre-existing runtime monitoring techniques, yielding an average asymptotic lower bound on overhead of 11% on the seven SPEC benchmarks tested.

Date of this Version

February 2005