Title
Controlling program execution through binary instrumentation
Abstract
Binary instrumentation has been widely used to observe dynamic program behavior, but current binary instrumentation systems do not allow the tool writer to alter the program execution path. This paper introduces some simple and general mechanisms for a binary instrumentation infrastructure to provide control over the application's execution path, allowing tools to replay or skip parts of the application, and to start or switch between threads. Specifically, the technique provides the following three functionalities for both single-threaded and multi-threaded applications: (1) checkpointing the execution state, (2) resuming execution at a checkpoint, and (3) starting execution at an arbitrary point in the program with a specified architectural state. We describe our implementation of these functionalities in Pin, a dynamic binary instrumentation infrastructure from Intel [5]. We demonstrate the usefulness of our mechanism by describing several binary instrumentation tools that have been built using this interface, including a transactional memory model and a thread scheduler.
Year
DOI
Venue
2005
10.1145/1127577.1127587
SIGARCH Computer Architecture News
Keywords
Field
DocType
execution state,program execution path,binary instrumentation infrastructure,binary instrumentation tool,current binary instrumentation system,controlling program execution,execution path,multi-threaded application,binary instrumentation,dynamic program behavior,dynamic binary instrumentation infrastructure,memory model
Instrumentation (computer programming),Program behavior,Computer science,Parallel computing,Transactional memory,Real-time computing,Thread (computing),Operating system,Binary number,Instrumentation
Journal
Volume
Issue
Citations 
33
5
16
PageRank 
References 
Authors
2.00
4
4
Name
Order
Citations
PageRank
Heidi Pan1554.13
Krste Asanović22975226.80
Robert Cohn333131.29
Chi-Keung Luk42537116.49