Home | Back
        *** Dyninst 6.1 Release Notes ***

This is the version 6.1 release of the DyninstAPI.  Currently, the
Dyninst API library is available for the x86/Linux, x86_64/Linux,
x86/WindowsXP/2000/2003, ia64/Linux, PowerPC/Linux, PowerPC64/Linux,
Sparc/Solaris, PowerPC/AIX, and PowerPC64/AIX.

Changes since Dyninst 6.0
- Major performance improvements in Dyninst generated instrumentation code
- Binary rewriter support for shared libraries
- Improvements to code parsing with stripped binaries
- Full integration with InstructionAPI on x86-based platforms
- Assorted bug fixes

Documentation for the DyninstAPI can be found at:

    http://www.paradyn.org/

The dyninst/testsuite/src/dyninst directory contains the source code
for programs that test the API functions.  These programs are useful
as examples of how to use the API.

If you have any problems or questions, feel free to email us at
bugs@dyninst.org.


About the static binary rewriter
--------------------------------

Dyninst 6.1 includes support for static binary rewriting.  Static
binary rewriting is currenly available only on x86/Linux and
x86_64/Linux platforms.  See the _DyninstAPI Programmer's Guide_ for
details.

Building the DyninstAPI from source
------------------------------------

Dyninst now uses autoconf to detect many of its essential
dependencies.  Accordingly, our build procedure is now simply:

cd dyninst
./configure
make

'configure --help' gives a list of configuration options.

Setting up the environment
--------------------------

To run DyninstAPI, DYNINSTAPI_RT_LIB should be set to the full
pathname of the file libdyninstAPI_RT.so.1 (on Windows use
libdyninstAPI_RT.dll).  By default, this will be in a
platform-specific directory: dyninstAPI/PLATFORM/lib, where PLATFORM
is one of the following:

i386-unknown-linux2.4 Linux 2.6 on an Intel x86 processor
i386-unknown-nt4.0 Windows XP/2000/2003 on an Intel x86 processor
ia64-unknown-linux2.4 Linux 2.6 on an Intel IA64 processor
rs6000-ibm-aix5.1 AIX 5.1 on a 32-bit POWER processor
rs6000-ibm-aix64-5.2 AIX 5.1 on a 64-bit POWER processor
sparc-sun-solaris2.9 Solaris 2.9 on a SPARC processor
x86_64-unknown-linux2.4 Linux 2.6 on an AMD64 processor ppc32_linux
Linux 2.6 on a 32-bit POWERPC processor ppc64_linux Linux 2.6 on a
64-bit POWERPC processor

On Unix-based systems, you will also need to add the
dyninstAPI/{PLATFORM}/lib directory to your LD_LIBRARY_PATH
environment variable (LIBPATH on AIX).  On Windows, you will instead
need to add dyninstAPI/i386-unknown-nt4.0/lib to your PATH environment
variable.  This is so that mutator applications can be linked
dynamically with the Dyninst library.

Notes on Using Dyninst with Linux
---------------------------------

On Linux, Dyninst requires some libraries that are not installed by
default in most distributions.  The first is libelf, which is included
with most distributions and can be installed using the distribution's
package manager.  The second is libdwarf.  You can get the latest
source code distribution of libdwarf from
http://reality.sgiweb.org/davea/.  RPM files for libdwarf are also
available from various sites.  For IA-64, libunwind must be installed,
which can be found at http://www.hpl.hp.com/research/linux/libunwind/.
Finally, to build Dyninst you need the libxml2 library,
xmlsoft.org. libxml2 is not required to actually run Dyninst, although
SymtabAPI's xml output features will be disabled if it's not present.

-----------------------------------------------------------------------------

This software is derived from the Paradyn system and therefore subject
to the same copyright.  A copy of the copyright is in the LICENSE file.

    The DyninstAPI Team
    Dec 7, 2009