|
|
Version 5.2, released on May 27, 2008. Improvements from version 5.1 include a new API for slicing, an API for representing parallel language constructs, 64-bit AIX binary support, 32-bit PowerPC Linux support, and numerous code generation optimizations. Also included in 5.2 is the beta release of our static binary rewriter.
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:
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.
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).
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.