Title :
PEBIL: Efficient static binary instrumentation for Linux
Author :
Laurenzano, Michael A. ; Tikir, Mustafa M. ; Carrington, Laura ; Snavely, Allan
Author_Institution :
San Diego Supercomput. Center, Performance Modeling & Characterization Lab., San Diego, CA, USA
Abstract :
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.
Keywords :
Linux; application program interfaces; Linux; PEBIL API; dynamic binary instrumentation; function level code relocation; static binary instrumentation; Assembly; Costs; Debugging; Hardware; Instruments; Laboratories; Libraries; Linux; Runtime; Supercomputers;
Conference_Titel :
Performance Analysis of Systems & Software (ISPASS), 2010 IEEE International Symposium on
Conference_Location :
White Plains, NY
Print_ISBN :
978-1-4244-6023-6
Electronic_ISBN :
978-1-4244-6024-3
DOI :
10.1109/ISPASS.2010.5452024