Pin is an ATOM-like instrumentation tool for Linux executables. It allows arbitrary code (written in C or C++) to be injected at arbitrary places in an executable. Unlike Atom, Pin does not perform the instrumentation statically by rewriting the executable, but rather dynamically by adding instrumentation while the executable is running. Currently supported platforms include IA-32, Intel Xscale, and Itanium processors.
| Tags | Software Development Code Generators Compilers Debuggers Testing |
|---|---|
| Operating Systems | POSIX Linux Windows Windows Mac OS X |
| Implementation | C++ |
Recent releases


Changes: This release supports Windows and Mac OS X for IA-32.


Changes: This release adds support for Mandrake 10 Linux, corrects several bugs regarding the reporting of instructions accessing memory, and enhances performance with the new conditional analysis code feature.


Changes: This release fixes numerous bugs and reduces memory conflicts between Pin and the executable.


Changes: This release for IA32 and EM64T improves support for multi-threaded applications and SuSE Linux distributions.


Changes: This update features numerous bugfixes, improved memory handling, and a preview of multi-threading support (c.f. ToolUnitTests/mt.C). It has been successfully tested on RH 7.2, 9.0, EL3, and FC2. Problems with SuSE and Mandrake are being worked on.