================================
ANNOUNCEMENT: Release 9.3 of
Dyninst
ParseAPI
SymtabAPI
InstructionAPI
StackwalkerAPI
ProcControl
PatchAPI
DynC_API
================================
We are pleased to announce a new release of Dyninst and its component
tool kits. This release includes some major new features (e.g., more
ARM/64 support, Intel KNL support) and major improvement in our manuals.
In addition, we've made a lot of code analysis improvement, performance
improvements, internal code clean ups, and bug fixes.
NEW FEATURES:
- 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)
IMPORTANT NOTE
- 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.
WHERE TO GET IT -- NEW THIS RELEASE ...
You can find all the details of this release, including source code,
documentation, and the test suite, at:
https://github.com/dyninst/dyninst/releases/tag/v9.3.0
Older dyninst releases may be found by browsing:
https://github.com/dyninst/dyninst/releases
As usual, www.paradyn.org and www.dyninst.org will be updated with
appropriate pointers, but github is now the primary location for
releases.
|