{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,21]],"date-time":"2026-01-21T14:16:44Z","timestamp":1769005004923,"version":"3.49.0"},"reference-count":15,"publisher":"SAGE Publications","issue":"4","license":[{"start":{"date-parts":[[2000,11,1]],"date-time":"2000-11-01T00:00:00Z","timestamp":973036800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["The International Journal of High Performance Computing Applications"],"published-print":{"date-parts":[[2000,11]]},"abstract":"<jats:p> The authors present a postcompiler program manipulation tool called Dyninst, which provides a C++ class library for program instrumentation. Using this library, it is possible to instrument and modify application programs during execution. A unique feature of this library is that it permits machine-independent binary instrumentation programs to be written. The authors describe the interface that a tool sees when using this library. They also discuss three simple tools built using this interface: a utility to count the number of times a function is called, a program to capture the output of an already running program to a file, and an implementation of conditional breakpoints. For the conditional breakpoint example, the authors show that by using their interface compared with gdb, they are able to execute a program with conditional breakpoints up to 900 times faster. <\/jats:p>","DOI":"10.1177\/109434200001400404","type":"journal-article","created":{"date-parts":[[2005,3,8]],"date-time":"2005-03-08T19:23:01Z","timestamp":1110309781000},"page":"317-329","source":"Crossref","is-referenced-by-count":381,"title":["An API for Runtime Code Patching"],"prefix":"10.1177","volume":"14","author":[{"given":"Bryan","family":"Buck","sequence":"first","affiliation":[{"name":"Computer Science Department, University of Maryland, College Park"}]},{"given":"Jeffrey K.","family":"Hollingsworth","sequence":"additional","affiliation":[{"name":"Computer Science Department, University of Maryland, College Park"}]}],"member":"179","published-online":{"date-parts":[[2000,11,1]]},"reference":[{"key":"atypb1","volume-title":"The application of code instrumentation technology in the Los Alamos debugger","author":"Brown, J. S.","year":"1992"},{"key":"atypb2","doi-asserted-by":"publisher","DOI":"10.1145\/258915.258923"},{"key":"atypb3","volume-title":"POPL 96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming","author":"Engler, D. R."},{"key":"atypb4","volume-title":"1990 International Conference on Supercomputing","author":"Hansen, G. J."},{"key":"atypb5","doi-asserted-by":"publisher","DOI":"10.1109\/71.730530"},{"key":"atypb6","volume-title":"7th International Symposium on High Performance Distributed Computing","author":"Hollingsworth, J. K."},{"key":"atypb7","volume-title":"1994 Scalable High-Performance Computing Conference","author":"Hollingsworth, J. K."},{"key":"atypb8","volume-title":"International Conference on Parallel Architectures and Compilation Techniques (PACT)","author":"Hollingsworth, J. K."},{"key":"atypb9","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380201205"},{"key":"atypb10","doi-asserted-by":"publisher","DOI":"10.1145\/207110.207163"},{"key":"atypb11","doi-asserted-by":"publisher","DOI":"10.1109\/2.471178"},{"key":"atypb12","volume-title":"Dynamic Probe Class Library (DPCL): Tutorial and Reference Guide","author":"Pase, D. M.","year":"1998"},{"key":"atypb13","volume-title":"USENIX Windows NT Workshop, August","author":"Romer, T."},{"key":"atypb14","volume-title":"SIGPLAN Conference on Programming Language Design and Implementation","author":"Srivastava, A."},{"issue":"8","key":"atypb15","first-page":"4","volume":"21","year":"1993","journal-title":"Capacity Management Review"}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/109434200001400404","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/109434200001400404","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,27]],"date-time":"2025-01-27T16:39:32Z","timestamp":1737995972000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/109434200001400404"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2000,11]]},"references-count":15,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2000,11]]}},"alternative-id":["10.1177\/109434200001400404"],"URL":"https:\/\/doi.org\/10.1177\/109434200001400404","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"value":"1094-3420","type":"print"},{"value":"1741-2846","type":"electronic"}],"subject":[],"published":{"date-parts":[[2000,11]]}}}