@jdetter jdetter released this Dec 22, 2016 · 407 commits to master since this release

Assets 2

Notes

  • Dyninst no longer supports libelf.so.0 (non-elfutils version); it may work for your use case but it is deprecated and will become unsupported in a future release. We intend to migrate fully to the elfutils stack for elf/dwarf infrastructure support.

New Features

  • Full support for Knight's Landing processors
  • First official release of ParseAPI for ARMv8
  • First release of cross-architecture binary analysis capabilities (parsing of ARM binaries on x86 and vice versa, for example). PowerPC parsing still requires compile-time selection of endianness; a fix for this is coming in 9.3.1. This is a significant step in our long road to making Dyninst's host and target platforms fully independent from each other.
  • Dyninst can now safely relocate and instrument code containing C++ exceptions.
  • Documented various ProcControl and Stackwalker tracking/tracking control interfaces.
  • Read access to Symtab and ParseAPI data structures should now be thread-safe, provided that you force eager creation of those data structures. If there exist data structures that cannot be eagerly created and are thus thread-unsafe for your use case, please let us know.
  • Automatic detection of Dyninst runtime library location (currently Unix-ish only, Windows support to follow in 9.3.1).
  • Cotire added to speed up build. If building with GCC, this requires version >= 4.5.0; for all compilers, this requires CMake >= 2.8.12.
  • Improvements to stack analysis on x86

Bug Fixes

  • Fixed segfault when a process is attached without specifying executable name
  • Fixed crash in liveness
  • Fixed assert when running stack modifications on SPEC
  • Fixed multiple jump table parsing issues
  • Fixed findMain analysis for stripped binaries
  • Assorted fixes in line information handling
  • Assorted fixes for race conditions in ProcControl
  • Fixed cases where Dyninst heaps were not allocated sufficiently close to the code being relocated into them
  • Ensured stack modification code is only built on supported platforms (x86/Linux for now)