PEBIL: Efficient static binary instrumentation for Linux

Binary instrumentation facilitates the insertion of additional code into an executable in order to observe or modify the executable's behavior. There are two main approaches to binary instrumentation: static and dynamic binary instrumentation. In this paper we present a static binary instrument...

Full description

Saved in:
Bibliographic Details
Published in2010 IEEE International Symposium on Performance Analysis of Systems and Software pp. 175 - 183
Main Authors Laurenzano, Michael A, Tikir, Mustafa M, Carrington, Laura, Snavely, Allan
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.03.2010
Subjects
Online AccessGet full text
ISBN1424460239
9781424460236
DOI10.1109/ISPASS.2010.5452024

Cover

More Information
Summary:Binary instrumentation facilitates the insertion of additional code into an executable in order to observe or modify the executable's behavior. There are two main approaches to binary instrumentation: static and dynamic binary instrumentation. In this paper we present a static binary instrumentation toolkit for Linux on the x86/x86_64 platforms, PEBIL (PMaC's Efficient Binary Instrumentation Toolkit for Linux). PEBIL is similar to other toolkits in terms of how additional code is inserted into the executable. However, it is designed with the primary goal of producing efficient-running instrumented code. To this end, PEBIL uses function level code relocation in order to insert large but fast control structures. Furthermore, the PEBIL API provides tool developers with the means to insert lightweight hand-coded assembly rather than relying solely on the insertion of instrumentation functions. These features enable the implementation of efficient instrumentation tools with PEBIL. The overhead introduced for basic block counting by PEBIL is an average of 65% of the overhead of Dyninst, 41% of the overhead of Pin, 15% of the overhead of DynamoRIO, and 8% of the overhead of Valgrind.
ISBN:1424460239
9781424460236
DOI:10.1109/ISPASS.2010.5452024