The DOI matches its Crossref record.
Pin: building customized program analysis tools with dynamic instrumentation
Abstract
Robust and powerful software instrumentation tools are essential for program analysis tasks such as profiling, performance evaluation, and bug detection. To meet this need, we have developed a new instrumentation system called Pin . Our goals are to provide easy-to-use, portable, transparent , and efficient instrumentation. Instrumentation tools (called Pintools ) are written in C/C++ using Pin's rich API. Pin follows the model of ATOM, allowing the tool writer to analyze an application at the instruction level without the need for detailed knowledge of the underlying instruction set. The API is designed to be architecture independent whenever possible, making Pintools source compatible across different architectures. However, a Pintool can access architecture-specific details when necessary. Instrumentation with Pin is mostly transparent as the application and Pintool observe the application's original, uninstrumented behavior. Pin uses dynamic compilation to instrument executables while they are running. For efficiency, Pin uses several techniques, including inlining, register re-allocation, liveness analysis, and instruction scheduling to optimize instrumentation. This fully automated approach delivers significantly better instrumentation performance than similar tools. For example, Pin is 3.3x faster than Valgrind and 2x faster than DynamoRIO for basic-block counting. To illustrate Pin's versatility, we describe two Pintools in daily use to analyze production software. Pin is publicly available for Linux platforms on four architectures: IA32 (32-bit x86), EM64T (64-bit x86), Itanium®, and ARM. In the ten months since Pin 2 was released in July 2004, there have been over 3000 downloads from its website.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cited by
Li, S., Ahn, J. H., Strong, R. D., Brockman, J. B., Tullsen, D. M., & Jouppi, N. P. (2009) · Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture · doi:10.1145/1669112.1669172 · Cited by 2,376
(2021) · doi:10.1109/tse.2019.2946563 · Cited by 574
Graphite: A distributed parallel simulator for multicores
Miller, J. E., Kasture, H., Kurian, G., Gruenwald, C., Beckmann, N., Celio, C., Eastep, J., & Agarwal, A. (2010) · HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture · doi:10.1109/hpca.2010.5416635 · Cited by 478
What You Corrupt Is Not What You Crash: Challenges in Fuzzing Embedded Devices
Muench, M., Stijohann, J., Kargl, F., Francillon, A., & Balzarotti, D. (2018) · Proceedings 2018 Network and Distributed System Security Symposium · doi:10.14722/ndss.2018.23166 · Cited by 219
Quantifying the Accuracy of High-Level Fault Injection Techniques for Hardware Faults
Wei, J., Thomas, A., Li, G., & Pattabiraman, K. (2014) · 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks · doi:10.1109/dsn.2014.2 · Cited by 182
Metadata
- Authors
- Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., & Hazelwood, K.
- Venue
- ACM SIGPLAN Notices
- Published
- 2005-06-12
- Volume
- 40
- Issue
- 6
- Pages
- 190-200
- ISSN
- 0362-1340 (ISSN-L)
- 1558-1160
- OpenAlex
- W2134633067
- Cited by
- 3,180
- References
- 0
- FWCI
- 142.28
- Type
- journal article
- Language
- en
- Open access
- closed
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
How to cite
Cite CoChat for the checks on this page, and the paper for its own findings.
- This page
- CoChat. (2026). Citation check: Pin: building customized program analysis tools with dynamic instrumentation. https://app.cochat.ai/papers/10.1145/1064978.1065034
- The paper
- Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., & Hazelwood, K. (2005). Pin: building customized program analysis tools with dynamic instrumentation. ACM SIGPLAN Notices. https://doi.org/10.1145/1064978.1065034
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.