An Application Program Interface (API) for Runtime Code Generation


Distribution and Documentation

Version 5.1, released on June 5, 2007. Improvements from version 5.0 include a new test suite, improved efficiency of generated instrumentation, finer granularity of instrumentation components, and the introduction of SymtabAPI: a stand-alone cross-platform symbol table parsing library.

Dyninst/Paradyn Week 2008

The 2008 Paradyn/Dyninst annual meeting will be held in Madison in conjunction with the Condor group. The Paradyn/Dyninst sessions will be on April 29-30, 2008.

Background

The normal cycle of developing a program is to edit source code, compile it, and then execute the resulting binary. However, sometimes this cycle can be too restrictive. We may wish to change the program while it is executing, and not have to re-compile, re-link, or even re-execute the program to change the binary. Applications that can make use of this dynamic code adaptation system include:

  • Performance Measurement Tools
  • Correctness Debuggers (efficient data breakpoints)
  • Execution drive simulations
  • Computational Steering
  • We have created an Application Program Interface (API) to permit the insertion of code into a running program. The goal of this API is to provide a machine independent interface to permit the creation of tools and applications that use runtime code patching. This API is based on the idea of Dynamic Instrumentation described in [1, 2] and used in the example here.

    A variety of tools have been built using dyninst.

    Status

    We have released version 4.2.1 of the API. This release supports Alpha (Tru64 UNIX), MIPS (IRIX), Power/PowerPC (AIX), SPARC (Solaris), x86 (Linux and Windows NT), and ia64 (Linux).

    Breaking News

    The results of the daily regression tests at Maryland and Wisconsin can be viewed here.
    Note: these are the results for the most current snapshot of the CVS tree, not the current release. As a result, sometimes a large number of test cases might fail one day due to a bad commit by one of the dyninst developers.

    We have posted code coverage statistics for the dyninst test cases.

    Additional Information

  • Papers about Dyninst
  • Tools and papers that use dyninst
  • Paradyn Project
  • To report bugs send mail to bugs@dyninst.org.