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