Dyninst 10.x

v10.1.0 Distribution Files

Version 10.1.0

Released on May 16, 2019
Improvements from 10.0.0

  • Full support of dynamic instrumentation on ARMv8
  • Significant improvement of stack walking on ARMv8
  • Adding instruction decoding support for AMD instruction extensions, such as XOP and FMA4
  • Enhancement of the build system for checking and installing dependencies (see wiki for important details)
  • Updated the Spack recipe for building Dyninst with appropriate Boost versions

Bug Fixes

  • More stable parallel binary code analysis
    • Identifying and fixing a couple of race conditions
    • Enforcing unique analysis order to generate deterministic results
  • Improving code generation for instrumentation on Power to conform to ABI v2
  • Improving binary rewriting on x86 and Power for
    • Position independent executables (PIEs)
    • Statically linked binaries
  • Resolving deadlocks in ProccontrolAPI
  • Improving code generation for BPatch_whileExpr on x86, Power, and ARMv8.
  • Fixing SIGILLs problems on ARMv8 caused by icache-dcache incoherence
  • Fixing supports of parsing debug information stored in separate files
  • Fixing incomplete libdw port for parsing DWARF expressions

v10.0.0 Distribution Files

Version 10.0.0

Released on November 9, 2018
Improvements from 9.3.2

  • Parallel binary code analysis (ParseAPI)
    • Parallel code parsing, significantly improving the speed of the analysis of large binaries
    • Parallel query to ParseAPI
    • Improve multiple aspects of parsing, including non-returning functions, tail call identification, jump table analysis
  • First official release of dyninstAPI for ARMv8, with partial support of dynamic instrumentation
  • Improving support for Power 8 & 9 instrumentation and new vector instruction decoding
  • SymtabAPI now provides information about inlined functions. See the manual for details.
  • Limited CUDA support: read-only queries of SymtabAPI
  • Updated Spack receipt for installing Dyninst

Software Dependency Changes

  • Adds dependency on libdw and removes dependency on libdwarf
  • Adds dependency on Intel Threading Building Blocks (TBB)
  • Adds optional dependency on OpenMP for parallel code analysis

Bug Fixes

  • x86/64 decoding Issues, including adding support for vector instructions and wrong operand sizes
  • Fix compilation issues on Arch Linux
  • Cross-architecture binary analysis: try/catch blocks
  • Improve DWARF parsing: fix dwarf symbol frame and elf section parsing
  • Improve CMake build systems: automatically downloading correct versions of Boost, TBB, and elfutils
  • Fix inferior RPC on ARMv8
  • Updated CMake build system for automatically downloading Dyninst dependencies and support parallel compilation