[DynInst_API:] Significant new release (8.2) of Dyninst Tool Suite

Date: Thu, 21 Aug 2014 16:00:46 -0500
From: Barton Miller <bart@xxxxxxxxxxx>
Subject: [DynInst_API:] Significant new release (8.2) of Dyninst Tool Suite
         Dyninst 8.2 Release
         ParseAPI 8.2 Release
         SymtabAPI 8.2 Release
         InstructionAPI 8.2 Release
         StackwalkerAPI 8.2 Release
         ProcControl 8.2 Release
         PatchAPI 8.2 Release
         DynC_API 8.2 Release

We are pleased to announce a major new release of Dyninst 8.2 and its
component tool kits. This release includes ParseAPI 8.2, SymtabAPI 8.2,
InstructionAPI 8.2, StackwalkerAPI 8.2,  ProcControl 8.2, PatchAPI 8.2,
and DynC_API 8.2.

This release includes new usability features and efficiency improvements.
As with previous 8.x releases, we support Linux, Windows, IBM BG/Q, and Cray
systems. All released components are fully integrated with Dyninst.


* Static binary rewriting now handles both the old and new binutils methods
  (ctors/dtors and init_array/fini_array) of static construction and

* Dyninst now works on Windows 7 in the presence of DEP and ASLR.

* New jump table idiom: some tables are effectively data-flow guarded
  rather than control-flow guarded, by using instructions that bound the
  index register to a 0...$smallnum range. We already handled some cases of
  this on PPC and now handle some that we've seen on x86.

* Independent XMM saves and restores: we do liveness and save XMM registers
  like normal registers.

* We now do type checking on parameter and return value snippets where

* We now handle gcc 4.8 binaries, including name mangling and DWARF4

* Fixed crash bugs when destroying Symtab objects.

* Fixed loadlibrary/exec callback semantics bug.

* Assorted proccontrol bug fixes for BG/Q.

* Added checks and error returns for when a user has traps disabled, but
  instrumentation would require them.

* Fixed bug with reinstrumentation where we would be unaware of where a
  previous insertion set's springboards were and make incorrect relocation

* Fixed various bugs in stack analysis leading to hangs.

* Properly control symbol visibility on Linux, so that only public Dyninst
  functions/variables are exposed to users.
* Fixed section alignment bug exposed by rewriting libc.

* Fixed parsing bug: a jump to a function's own entry point is not a tail call.

* Fixed springboard bug: we weren't properly handling tail calls with respect
  to entry instrumentation
* Updated springboard mechanism to better handle conflicts.

* Fixed an outstanding signed/unsigned bug in InstructionAPI immediates.

* Fixed a bug in .dynamic section rewriting that confused ldd.


* Dyninst now builds with CMake, produces appropriate package information for
  other projects, and will automatically download libelf/libdwarf/binutils if
  it can't find them.

* RedHat users on Fedora 19 through 22 should simply update their Dyninst
  package with their package manager. While we provide direct links to the
  RPMs for those who are interested, RedHat strongly recommends "yum update"
  as your Dyninst upgrade mechanism.

* Visual Studio users should use CMake to generate NMake or VS project files
  for their actual systems. The VS project files provided are examples from
  our environment and should not be used to build.

* The Dyninst test suite is now in a separate repository from the Dyninst
  components. This is in line with how we have distributed Dyninst and its
  tests recently.

Note that all Dyninst code is open source, released under the GNU LGPL. And
thank you to Red Hat for hosting the Linux RPMs.

Dyninst official distributions are available from:

or you can git checkout the v8.2.0.1 tag from:

Dyninst 8.2 is also available as a standard part of RedHat distributions
and is making its way through their RPM publication process now. 
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] Significant new release (8.2) of Dyninst Tool Suite, Barton Miller <=