[DynInst_API:] Dyninst 13.0 release now available


Date: Wed, 27 Mar 2024 03:35:18 -0500 (CDT)
From: BARTON MILLER <bart@xxxxxxxxxxx>
Subject: [DynInst_API:] Dyninst 13.0 release now available
   ===============================
     ANNOUNCEMENT: Release 13.0 of
              Dyninst
              ParseAPI
              SymtabAPI
              InstructionAPI
              StackwalkerAPI
              ProcControl
              PatchAPI
              DynC_API
   ================================

We are pleased to announce the 13.0 release of Dyninst and its related
toolkits. It's been a while since our last release!

The release can be found at:
   https://github.com/dyninst/dyninst

Description at: 
   https://github.com/dyninst/dyninst/releases/tag/v13.0.0

New to this release are:

## ENHANCEMENTS

 - Initial instruction decoding AMD gfx940

 - Add indirect branch support for AMD GPUs

 - Improve instruction decoding for gfx908 and gfx90a based on AMD data files

 - Make formatting of AMD GPU instructions match objdump

 - Make AMD GPU binaries are RELA relocatable

 - Treat Intel's XE Gen12 ELF binaries like Gen9 ELF binaries

 - Correct and improve detection of instructions that are system call and
   interrupt instructions on all platforms

 - Add a callback mechanism for instructions not decoded by Dyninst to allow
   user decoding

 - Correctly determine if an x86 LEA instruction is a NOP in all cases

 - Enhance formatting of x86 instruction to always use AT&T syntax order,
   correctly handle mask registers, fix display of x86 RET instruction, added
   getDisplayOrderedOperands to get operands in display order, allow
   formatting of individual operands

 - Enhance x86 instruction information: add support for additional x86
   registers, correct x86 mnemonic misspellings, synchronize instruction IDs
   with those found Capstone

 - Cleanup and enhance DWARF processing: r-value references, C++ scoped enums,
   sub-ranges

 - Support line map parsing for DWARF CUs without aranges or and invalid one
   (e.g., gtpin binaries), and remove SymtabAPI's addLine and AddAddressRange
   methods

 - Improve modules (compilation units) support: allow for modules with
   duplicate names, support modules with non-unique PC starting pointer,
   Module::getAllFunctions now correctly returns the set of functions contained
   in the module and has an API change, new Symtab::getContainingModule returns
   module containing address, Symtab::findModulesByName returns a list of
   modules with the given name, new API for Symtab::findModuleByOffset, and
   deprecate Symtab::findModuleByOffset(Module*&, Offset)

 - Support instrumentation of static executables that are statically linked
   with glibc 2.34 and newer

 - Rewrite of cmake files to support modern cmake constructs allowing Dyninst
   libraries to be more easily consumed by cmake projects via library targets
   and to improved build consistency and maintainability

 - Improve comparison order for ParseAPI::Function objects so the order is
   stable across runs and more meaningful for human inspection

 - Safely read and write unaligned memory locations to prevent crashes to
   prevent a C++ undefined behavior and crashes on platforms that have
   alignment requirements

 - Enhance BinaryEdit::getResolvedLibraryPath to correctly handle additional
   output by recent version of /sbin/ldconfig

 - Add Github CI testing for every pull request to ensure Dyninst builds on a
   variety of platforms and compilers, that packages that depend on Dyninst
   build including the tests suite and 3rd party packages, and that basic sanity tests pass

## BUG FIXES

 - correct instruction length for x86_64 EVEX instructions

 - Correctly save & restore of registers on aarch64 for instrumented code

 - Fix determination of an instruction being an interrupt or syscall

 - Correctly determine if an x86 register is MMX

 - Fix hang when emitting AMD GPU binaries

 - Fix thread safety issues

 - Prevent segfault in Indirect Analyzer

 - Fix segfault in output operator<< for Module*

 - General code improvements for correctness, efficiency, new C++ standards,
   code quality, maintainability and dead code removal; many of these found by
   compiler settings and static code analysis tools
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] Dyninst 13.0 release now available, BARTON MILLER <=