Standard Article

Software Instrumentation

  1. Torsten Kempf,
  2. Kingshuk Karuri,
  3. Lei Gao

Published Online: 15 SEP 2008

DOI: 10.1002/9780470050118.ecse386

Wiley Encyclopedia of Computer Science and Engineering

Wiley Encyclopedia of Computer Science and Engineering

How to Cite

Kempf, T., Karuri, K. and Gao, L. 2008. Software Instrumentation. Wiley Encyclopedia of Computer Science and Engineering. 1–11.

Author Information

  1. RWTH Aachen University, Institute for Integrated Signal Processing Systems, Aachen, Germany

Publication History

  1. Published Online: 15 SEP 2008

Abstract

Software instrumentation is a technique that is widely used in software profiling, performance analysis, optimization, testing, error detection, and virtualization. Instrumentation, which involves adding extra code to an application for monitoring some program behavior, can be performed either statically (i.e., at compile time) or dynamically (i.e., at runtime). Static instrumentation techniques range from simple manual techniques to compiler/assembler-based instrumentation and link-time or post-link executable editing. Dynamic instrumentation techniques are often more complex to implement than the static ones, but they can track dynamically linked libraries and indirect branches that are difficult to handle through static instrumentation.

Keywords:

  • software instrumentation;
  • DBI;
  • executable editor;
  • bytecode;
  • virtual machine