Pin is a program that enables dynamic instrumentation of programs.
Designed to deliver features similar to the popular ATOM toolkit, which was designed for Compaq's Tru64 Unix on Alpha, Pin enables the injection of arbitrary code, written in C or C++, at any point in the executable. Unlike Atom, Pin doesn't instrument an executable statically by rewriting it; instead, it adds the code dynamically while the executable runs, making it possible to attach Pin to a process that's already running.
What sets Pin apart is its rich API, which abstracts away underlying instruction set idiosyncrasies, enabling context information such as register contents to be passed to the injected code as parameters. Pin automatically saves and restores overwritten registers, allowing the application to continue to work. Additionally, Pin offers limited access to symbol and debug information.
The latest release of Pin supports Windows and Mac OS X for IA-32, opening up new possibilities for dynamic instrumentation on these platforms. If you're looking for a powerful and versatile tool for dynamic instrumentation, Pin is definitely worth checking out.
Version 2.0 Kit 7259: N/A