Dynamic binary instrumentation (DBI) is a powerful technique for analyzing the runtime behavior of software. While numerous DBI frameworks have been developed for general-purpose architectures, work on DBI frameworks for embedded architectures has been fairly limited. In this paper, we describe the design, implementation, and applications of the ARM version of Pin, a dynamic instrumentation system from Intel. In particular, we highlight the design decisions that are geared toward the space and processing limitations of embedded systems. Pin for ARM is publicly available and is shipped with dozens of sample plug-in instrumentation tools. It has been downloaded over 500 times since its release. Categories and Subject Descriptors D.3.4 [Programming Languages]: Code generation, Optimization, Run-time environments General Terms Languages, Management, Measurement, Performance Keywords Pin, Binary instrumentation, Dynamic translation, Embedded architectures
Kim M. Hazelwood, Artur Klauser