We are happy to announce the beta release of the Pin
dynamic instrumentation tool for IA32/MacOS. You can download it from:
http://rogue.colorado.edu/pin/downloads.php
Please see the ReleaseNotes for instructions. Questions can be sent to
email@hidden
What is Pin?
Pin is a tool for dynamic instrumentation of
programs. It is designed
to provide functionality similar to the popular ATOM toolkit for Compaq's Tru64
Unix on Alpha, i.e. arbitrary code (written in C or C++) can be injected at
arbitrary places in the executable. Unlike Atom, Pin does not instrument an
executable statically by rewriting it, but rather adds the code dynamically
while the executable is running. This also makes it possible to attach Pin to
an already running process.
Pin provides a rich API that abstracts away the
underlying instruction set idiosyncrasies and allows context information such
as register contents to be passed to the injected code as parameters. Pin
automatically saves and restores the registers that are overwritten by the
injected code so the application continues to work. Limited access to symbol
and debug information is available as well.
Pin includes the source code for a large number of
example instrumentation tools like basic block profilers, cache simulators,
instruction trace generators, etc. It is easy to derive new tools using the
examples as a template.
Pin
is provided free of charge by Intel and can be redistributed.