- 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.
- 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
- 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
findMainanalysis 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)