Dyninst 9.2.0
New Features
- ARM64 SIMD support in instructionAPI
- Support for all x86 instruction sets up to Knight's Landing (AVX, AVX2, AVX512)
- DataflowAPI now has an official manual
- Initial ppc64/little endian support in Symtab, InstructionAPI, ProcControl, and Stackwalker. Add
-Darch_ppc64_little_endian to your CMake command line when building on little-endian ppc64 systems. - New InstructionAPI test framework based on structured fuzzing.
This resulted in finding (and fixing) lots of corner-case
instruction parsing errors. The fuzzer framework, called Peach,
will be released later this year.
Bug Fixes
- PIE binaries should now be rewritten correctly, even if they have a zero base address
- Symtab should now correctly file symbols into their associated modules based on the best available DWARF information
- Many more fixes in x86 instruction decoding
- Enhancements to jump table analysis
- PC-relative memory accesses in VEX instructions can now be relocated correctly
- Various proccontrol bug fixes
- RTlib's DYNINSTos_malloc and DYNINSTos_free should now be signal-safe
- RTlib's tramp guard lock/unlock functions should now avoid making implicit function calls
(which are unsafe from tramp guard code) - ppc64 bit rot for create/attach modes is fixed
Known Issues
- ppc64 rewriter mode does not handle any code that does not conform to the "caller sets up TOC" model for intermodule calls
- Windows 64-bit mode is not yet supported
- Windows rewriter mode is not yet supported
- Exceptions in relocated code will not be caught
- Linux rewriter mode for 32-bit, statically linked binaries does not support binaries with .plt, .rel, or .rela
sections. - Callbacks at thread or process exit that stop the process will deadlock when a SIGSEGV occurs on a thread other than the main thread of a process
- InstructionAPI's format() method does not produce AT&T syntax output
- Stackwalker is fragile on Windows
- Parsing a binary with no functions (typically a single object file) will crash at CodeObject destruction time.
- Line information is still filed into incorrect modules for a small fraction of functions in SymtabAPI.
Manuals
dyninstAPI-9.2.0.pdf
dynC_API-9.2.0.pdf
proccontrol-9.2.0.pdf
patchAPI-9.2.0.pdf
stackwalk-9.2.0.pdf
dataflowAPI-9.2.0.pdf
parseAPI-9.2.0.pdf
instructionAPI-9.2.0.pdf
symtabAPI-9.2.0.pdf