Computational Science – ICCS 2009

Volume 5545 of the series Lecture Notes in Computer Science pp 696-705

A Generic and Configurable Source-Code Instrumentation Component

  • Markus GeimerAffiliated withJülich Supercomputing Centre, Forschungszentrum Jülich
  • , Sameer S. ShendeAffiliated withDepartment of Computer and Information Science, University of Oregon
  • , Allen D. MalonyAffiliated withDepartment of Computer and Information Science, University of Oregon
  • , Felix WolfAffiliated withJülich Supercomputing Centre, Forschungszentrum JülichDepartment of Computer Science, RWTH Aachen University

* Final gross prices may vary according to local VAT.

Get Access


A common prerequisite for a number of debugging and performance-analysis techniques is the injection of auxiliary program code into the application under investigation, a process called instrumentation. To accomplish this task, source-code preprocessors are often used. Unfortunately, existing preprocessing tools either focus only on a very specific aspect or use hard-coded commands for instrumentation. In this paper, we examine which basic constructs are required to specify a user-defined routine entry/exit instrumentation. This analysis serves as a basis for a generic instrumentation component working on the source-code level where the instructions to be inserted can be flexibly configured. We evaluate the identified constructs with our prototypical implementation and show that these are sufficient to fulfill the needs of a number of todays’ performance-analysis tools.