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.
NEW FEATURES AND BUG FIXES:
* 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.
IMPORTANT BUILD NOTES:
* 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
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 v126.96.36.199 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.