Pin (computer program)

Pin is a platform for creating analysis tools. A pin tool comprises instrumentation, analysis and callback routines. Instrumentation routines are called when code that has not yet been recompiled is about to be run, and enable the insertion of analysis routines. Analysis routines are called when the code associated with them is run. Callback routines are only called when specific conditions are met, or when a certain event has occurred. Pin provides an extensive application programming interface (API) for instrumentation at different abstraction levels, from one instruction to an entire binary module. It also supports callbacks for many events such as library loads, system calls, signals/exceptions and thread creation events.

Comment
enPin is a platform for creating analysis tools. A pin tool comprises instrumentation, analysis and callback routines. Instrumentation routines are called when code that has not yet been recompiled is about to be run, and enable the insertion of analysis routines. Analysis routines are called when the code associated with them is run. Callback routines are only called when specific conditions are met, or when a certain event has occurred. Pin provides an extensive application programming interface (API) for instrumentation at different abstraction levels, from one instruction to an entire binary module. It also supports callbacks for many events such as library loads, system calls, signals/exceptions and thread creation events.
Computing platform
IA-32
Intel Xeon Phi
X86-64
Developer
Intel
Developer
Intel
Genre
Instrumentation (computer programming)
Genre
Instrumentation (computer programming)
Genre
Profiling (computer programming)
Genre
Profiling (computer programming)
Has abstract
enPin is a platform for creating analysis tools. A pin tool comprises instrumentation, analysis and callback routines. Instrumentation routines are called when code that has not yet been recompiled is about to be run, and enable the insertion of analysis routines. Analysis routines are called when the code associated with them is run. Callback routines are only called when specific conditions are met, or when a certain event has occurred. Pin provides an extensive application programming interface (API) for instrumentation at different abstraction levels, from one instruction to an entire binary module. It also supports callbacks for many events such as library loads, system calls, signals/exceptions and thread creation events. In 2020, it received the Programming Languages Software Award from ACM SIGPLAN. Pin performs instrumentation by taking control of the program just after it loads into the memory. Then just-in-time recompiles (JIT) small sections of the binary code using pin just before it is run. New instructions to perform analysis are added to the recompiled code. These new instructions come from the Pintool. A large array of optimization techniques are used to obtain the lowest possible running time and memory use overhead. As of June 2010, Pin's average base overhead is 30 percent (without running a pintool).
Homepage
www.intel.com/software/pintool
Hypernym
Platform
Is primary topic of
Pin (computer program)
Label
enPin (computer program)
LatestReleaseDate
10 February 2021
Latest release date
10 February 2021
LatestReleaseVersion
3.18
Latest release version
3.18
License
enProprietary, Pin is given free of charge for non-commercial use under the End User License Agreement for the IntelĀ® Software Development Products, section 2.2 License for Noncommercial License Types.
License
pinlicense.txt
Proprietary software
Link from a Wikipage to an external page
www.computer.org/portal/web/csdl/magazines/computer%234
web.archive.org/web/20101229163736/http:/www.computer.org/portal/web/csdl/magazines/computer%234
jbremer.org/detecting-uninitialized-memory-read-access-bugs-using-pin-a-la-valgrind/
pintool.intel.com/
software.intel.com/en-us/articles/intel-software-development-emulator/
www.cs.virginia.edu/kim/docs/ispass10.pdf
www.cs.tufts.edu/comp/150IPL/papers/luk05pin.pdf
groups.io/g/pinheads
software.intel.com/sites/landingpage/pintool/pinlicense.txt
github.com/SEDS/PinPP
www.intel.com/software/pintool
www.pinplay.org
Link from a Wikipage to another Wikipage
Application programming interface
Association for Computing Machinery
Bell Lab
Binary rewriting
Category:Profilers
Cross-platform
Dynamic program analysis
DynamoRIO
Dyninst
IA-32
Inline function
Instrumentation (computer programming)
Intel
Intel Parallel Studio
Intel Xeon Phi
Intermediate representation
Just-in-time compilation
Linux
Liveness analysis
MacOS
Operating system
Profiling (computer programming)
Proprietary software
Register spilling
SIGPLAN
Subroutine
Thread (computer science)
Trampoline (computers)
Valgrind
Windows
X86-64
OperatingSystem
Linux
MacOS
Windows
Platform
IA-32
Intel Xeon Phi
X86-64
SameAs
4tsrF
m.0ch4jgp
Pin (programa computacional)
Q7194748
Subject
Category:Profilers
WasDerivedFrom
Pin (computer program)?oldid=1101627692&ns=0
Website
pintool
WikiPageLength
10392
Wikipage page ID
27944474
Wikipage revision ID
1101627692
WikiPageUsesTemplate
Template:Cite conference
Template:Cite journal
Template:Infobox software
Template:Refbegin
Template:Refend
Template:Reflist
Template:Release date