Tools for binary instrumentation, analysis, and modification
Description
Dyninst is an Application Program Interface (API) to permit the insertion of
code into a computer application that is either running or on disk. The API
for inserting code into a running application, called dynamic instrumentation,
shares much of the same structure as the API for inserting code into an executable
file or library, known as static instrumentation. The API also permits changing
or removing subroutine calls from the application program. Binary code changes
are useful to support a variety of applications including debugging, performance
monitoring, and to support composing applications out of existing packages. The
goal of this API is to provide a machine independent interface to permit the
creation of tools and applications that use runtime and static code patching.