[DynInst_API:] Dyninst 9.3 release (lots of good new stuff)


Date: Thu, 22 Dec 2016 16:01:09 -0600
From: Barton Miller <bart@xxxxxxxxxxx>
Subject: [DynInst_API:] Dyninst 9.3 release (lots of good new stuff)
   ================================
     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.
[← Prev in Thread] Current Thread [Next in Thread→]