http://open-source-security-software.net/project/dyninst/releases.atomRecent releases for dyninst2024-11-01T04:30:56.909783+00:00python-feedgendyninst v9.1.0dyninst v9.1.02016-06-29T21:28:36+00:00INTERFACE CHANGES:
- Shared objects and executables now both correspond to
BPatch_objects, and their constituent .o files correspond to
BPatch_modules.
NEW FEATURES:
- New code example: disassembler
- Boost should now auto-detect up to version 1.59
- Initial ARM64 implementation of InstructionAPI; SIMD instructions
are currently not supported
BUG FIXES
- Many x86 decoding bugs fixed (incorrect operand sizes, incorrect
prefix handling)
- Memory leaks fixed in line information parsing
- Slicing no longer attempts to follow edges to or from catch blocks
- Exception block parsing properly matches glibc internals
- Line information parsing should no longer erroneously fail to return
line information; also should no longer take quadratic time
- LD_PRELOAD again works
- Relocation and instrumentation no longer trigger unnecessary parsing
on Windows
- Windows no longer misidentifies calling conventions due to
use-after-free string corruption
MANUALS
[dynC_API-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340237/dynC_API-9.1.0.pdf)
[dyninstAPI-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340239/dyninstAPI-9.1.0.pdf)
[instructionAPI-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340236/instructionAPI-9.1.0.pdf)
[parseAPI-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340238/parseAPI-9.1.0.pdf)
[patchAPI-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340241/patchAPI-9.1.0.pdf)
[proccontrol-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340240/proccontrol-9.1.0.pdf)
[stackwalk-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340243/stackwalk-9.1.0.pdf)
[symtabAPI-9.1.0.pdf](https://github.com/dyninst/dyninst/files/340242/symtabAPI-9.1.0.pdf)
2016-06-29T21:28:36+00:00dyninst v9.2.0dyninst v9.2.02016-06-29T21:59:50+00:00## 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](https://github.com/dyninst/dyninst/files/340295/dyninstAPI-9.2.0.pdf)
[dynC_API-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340247/dynC_API-9.2.0.pdf)
[proccontrol-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340294/proccontrol-9.2.0.pdf)
[patchAPI-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340251/patchAPI-9.2.0.pdf)
[stackwalk-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340250/stackwalk-9.2.0.pdf)
[dataflowAPI-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340272/dataflowAPI-9.2.0.pdf)
[parseAPI-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340248/parseAPI-9.2.0.pdf)
[instructionAPI-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340249/instructionAPI-9.2.0.pdf)
[symtabAPI-9.2.0.pdf](https://github.com/dyninst/dyninst/files/340252/symtabAPI-9.2.0.pdf)
2016-06-29T21:59:50+00:00dyninst v9.3.0dyninst v9.3.02016-12-22T21:57:03+00:00## Notes
- 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.
## New Features
- Full support for Knight's Landing processors
- 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)
2016-12-22T21:57:03+00:00dyninst v9.3.1dyninst v9.3.12017-03-02T21:41:25+00:00# Change Log
## [v9.3.1](https://github.com/dyninst/dyninst/releases/v9.3.1) (2017-03-02)
[Full Changelog](https://github.com/dyninst/dyninst/compare/v9.3.0...v9.3.1)
**Fixed bugs:**
- Abort on PPC64LE when trying to get line number info [#337](https://github.com/dyninst/dyninst/issues/337)
- Seg Fault on PPC64LE during attach [#336](https://github.com/dyninst/dyninst/issues/336)
- Memory leaks in indirect control flow analysis [#322](https://github.com/dyninst/dyninst/issues/322)
- BPatch_binaryEdit::writeFile() fails for stack diversification [#311](https://github.com/dyninst/dyninst/issues/311)
- Stackwalk issue on arm64 [#303](https://github.com/dyninst/dyninst/issues/303)
- Decode returns null shared pointer [#288](https://github.com/dyninst/dyninst/issues/288)
- Operands labelled "[empty]" with operand type mismatch (all with 0x67 prefix) [#203](https://github.com/dyninst/dyninst/issues/203)
**Merged pull requests:**
- Replaced a bunch of asserts with graceful error handling. [#340](https://github.com/dyninst/dyninst/pull/340) ([wrwilliams](https://github.com/wrwilliams))
- Fix jump table analysis for lulesh [#338](https://github.com/dyninst/dyninst/pull/338) ([mxz297](https://github.com/mxz297))
- Better handling of anonymous structs and unions [#335](https://github.com/dyninst/dyninst/pull/335) ([wrwilliams](https://github.com/wrwilliams))
- Fix memory leaks found with lsan [#333](https://github.com/dyninst/dyninst/pull/333) ([wrwilliams](https://github.com/wrwilliams))
- Suppress debug message when no vsyscall page was found on arm64 [#332](https://github.com/dyninst/dyninst/pull/332) ([wrwilliams](https://github.com/wrwilliams))
- Use ifdef to guard x86 code [#331](https://github.com/dyninst/dyninst/pull/331) ([wrwilliams](https://github.com/wrwilliams))
- Fix memory leaks in indirect control flow. [#329](https://github.com/dyninst/dyninst/pull/329) ([wrwilliams](https://github.com/wrwilliams))
- Fixes for API and dependency issues in 9.3.0 [#323](https://github.com/dyninst/dyninst/pull/323) ([wrwilliams](https://github.com/wrwilliams))
\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_
2017-03-02T21:41:25+00:00dyninst v9.3.2dyninst v9.3.22017-04-18T19:07:30+00:00# Change Log
## [v9.3.2](https://github.com/dyninst/dyninst/releases/v9.3.2) (2017-04-05)
[Full Changelog](https://github.com/dyninst/dyninst/compare/v9.3.1...v9.3.2)
**Fixed bugs:**
- memcpy can fail with rewriter tests [\#355](https://github.com/dyninst/dyninst/issues/355)
- dyninst does not build on i386 [\#343](https://github.com/dyninst/dyninst/issues/343)
- \[ARMv8 Decoding\] SQ\* instructions need to check bits with specific values [\#268](https://github.com/dyninst/dyninst/issues/268)
- \[ARMv8 Decoding\] SMADDL and SMSUBL should have 32-bit register for operands 2 and 3 [\#266](https://github.com/dyninst/dyninst/issues/266)
- \[ARMv8 Decoding\] SHL and SLI should have 0 for bit 11 [\#265](https://github.com/dyninst/dyninst/issues/265)
- \[ARMv8 Decoding\] NEG instruction must have size = '11' [\#263](https://github.com/dyninst/dyninst/issues/263)
- \[ARMv8 Decoding\] FMUL instruction cannot have size:q = '10' [\#262](https://github.com/dyninst/dyninst/issues/262)
- \[ARM Decoding\] FMUL instructions cannot have 'size:L' == '11' [\#258](https://github.com/dyninst/dyninst/issues/258)
- \[ARM Decoding\] Convert instruction immediate has reserved values \(currently ignored\) [\#257](https://github.com/dyninst/dyninst/issues/257)
- \[ARM Decoding\] FCVTXN should be FCVTXN2 [\#255](https://github.com/dyninst/dyninst/issues/255)
- \[ARM Decoding\] FCVT 'type' field cannot equal 'opc' field [\#254](https://github.com/dyninst/dyninst/issues/254)
- \[ARM Decoding\] Reserved size value for some vector register instructions is ignored [\#249](https://github.com/dyninst/dyninst/issues/249)
- \[ARM Decoding\] Stack pointer used where zero register should be [\#248](https://github.com/dyninst/dyninst/issues/248)
- \[ARM Decoding\] Signed multiply instructions ignore size resitrictions [\#247](https://github.com/dyninst/dyninst/issues/247)
- \[ARM Decoding\] Paired memory accesses must access aligned memory [\#245](https://github.com/dyninst/dyninst/issues/245)
- \[ARM Decoding\] Convert instruction immediates appear incorrect at 64 [\#241](https://github.com/dyninst/dyninst/issues/241)
- \[ARM Decoding\] Convert instruction immediate should not be larger than the register size [\#240](https://github.com/dyninst/dyninst/issues/240)
- \[ARM Syntax\] Signed immediates should be shown as signed [\#239](https://github.com/dyninst/dyninst/issues/239)
- \[ARM Decoding\] We should print the full operands of PRFUM [\#238](https://github.com/dyninst/dyninst/issues/238)
- \[ARM Decoding\] Bad shift amounts. [\#233](https://github.com/dyninst/dyninst/issues/233)
- \[ARM Decoding\] SIMD load instruction should be valid [\#223](https://github.com/dyninst/dyninst/issues/223)
- \[ARM Decoding\] Decoding of MOVK instruction ignores restriction on combination of size and hw bits [\#222](https://github.com/dyninst/dyninst/issues/222)
- \[ARM Decoding\] Decoding of ADDHN ignore reserved size bits [\#221](https://github.com/dyninst/dyninst/issues/221)
- \[ARM Syntax\] Zero register should have sizing, either XZR or WZR [\#220](https://github.com/dyninst/dyninst/issues/220)
- \[ARM Decoding\] Invalid CCMP and CCMN decoded as valid [\#219](https://github.com/dyninst/dyninst/issues/219)
- \[ARM Syntax\] Shifted immediate for CCMP and CCMN [\#218](https://github.com/dyninst/dyninst/issues/218)
- \[ARM Syntax\] Immediate out of range for LDRSB [\#217](https://github.com/dyninst/dyninst/issues/217)
- \[ARM Syntax\] Repeated register number as constant [\#216](https://github.com/dyninst/dyninst/issues/216)
**Merged pull requests:**
- CMake fixup [\#349](https://github.com/dyninst/dyninst/pull/349) ([wrwilliams](https://github.com/wrwilliams))
- Fix up exception handling code so that we only consider call instructions for exception sensitivity and its attendant emulation [\#347](https://github.com/dyninst/dyninst/pull/347) ([wrwilliams](https://github.com/wrwilliams))
- Refactor BPatch\_type so it always has a reference to its underlying symtab type. [\#346](https://github.com/dyninst/dyninst/pull/346) ([wrwilliams](https://github.com/wrwilliams))
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*2017-04-18T19:07:30+00:00dyninst v10.0.0dyninst v10.0.02018-11-09T16:56:54+00:00## New Features
- 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
- Partial support of dynamic instrumentation on ARMv8. Please see https://github.com/dyninst/dyninst/wiki/DyninstAPI-ARMv8-status for details.
- Improving support for Power 8 & 9 instrumentation and new vector instruction decoding
- Limited CUDA support: read-only queries of SymtabAPI
- Updated Spack recipe 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
## Manuals
- [DyninstAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 10.0](https://github.com/dyninst/dyninst/blob/3e1921c771861bdbb89b6370cd7a3d1217d6bf87/symtabAPI/doc/symtabAPI.pdf)
2018-11-09T16:56:54+00:00dyninst v10.1.0dyninst v10.1.02019-05-16T18:42:47+00:00## New Features
- 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](https://github.com/dyninst/dyninst/wiki/Building-Dyninst) 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
## Manuals
- [DyninstAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 10.1](https://github.com/dyninst/dyninst/blob/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea/symtabAPI/doc/symtabAPI.pdf)
2019-05-16T18:42:47+00:00dyninst 10.2.0dyninst 10.2.02020-07-31T23:19:13+00:00## Enhancements
- Improve analysis and instrumentation of large binaries
- Handle ELF extended numbering
- Fix memory leaks that prevent instrumentation for large binaries
- Improve parallel code parsing and dwarf parsing
- Implement control flow trimming that removes wrong edges
- Remove mutual exclusion in constructing index structures from basic blocks to functions
- Improve jump table analysis involving global variables
- ARM binary rewriting for dynamically-linked objects
- Improve DWARF parsing
- support abstract origin attribute
- support one machine instruction address mapped to multiple source lines
- support parsing of relocatable objects
- Remove usage of GNU extensions for varargs
- Handle "ghost" threads in proccontrol
- "Ghost" threads are stopped threads killed by the OS (or user) before proccontrol continues them
## Bug fixes
- Fix instrumentation regressions, including libc-2.29 on ARM, shared libraries instrumentation, corruption to registers
- Fix rewriting static binaries about searching libgcc.a on x86 and aarch64
- Cleanup undefined C++ behaviors
- Many fixes to code examples in the documentation
## Build changes
- Use modern CMake features to enforce language support at build time
- Add "sterile build" option to prevent Dyninst from building its own dependencies
- Improve Clang support when building Intel TBB from source
## Deprecations
- Support for running on IBM's Blue Gene
## Dyninst Toolkit Examples
- Code examples previously contained in the 'examples' directory have been moved to their own repository [dyninst/examples](https://github.com/dyninst/examples).
---
## Manuals
- [DyninstAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/symtabAPI/doc/symtabAPI.pdf)
2020-07-31T23:19:13+00:00dyninst v10.2.0dyninst v10.2.02020-07-31T23:19:13+00:00## Enhancements
- Improve analysis and instrumentation of large binaries
- Handle ELF extended numbering
- Fix memory leaks that prevent instrumentation for large binaries
- Improve parallel code parsing and dwarf parsing
- Implement control flow trimming that removes wrong edges
- Remove mutual exclusion in constructing index structures from basic blocks to functions
- Improve jump table analysis involving global variables
- ARM binary rewriting for dynamically-linked objects
- Improve DWARF parsing
- Support abstract origin attribute
- Support one machine instruction address mapped to multiple source lines
- Support parsing of relocatable objects
- Remove usage of GNU extensions for varargs
- Handle "ghost" threads in proccontrol
- "Ghost" threads are stopped threads killed by the OS (or user) before proccontrol continues them
## Bug fixes
- Fix instrumentation regressions, including libc-2.29 on ARM, shared libraries instrumentation, corruption to registers
- Fix rewriting static binaries about searching libgcc.a on x86 and aarch64
- Cleanup undefined C++ behaviors
- Many fixes to code examples in the documentation
## Build changes
- Use modern CMake features to enforce language support at build time
- Add "sterile build" option to prevent Dyninst from building its own dependencies
- Improve Clang support when building Intel TBB from source
## Deprecations
- Removed support for running on IBM Blue Gene
## Dyninst Toolkit Examples
- Code examples previously contained in the 'examples' directory have been moved to their own repository [dyninst/examples](https://github.com/dyninst/examples).
---
## Manuals
- [DyninstAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/symtabAPI/doc/symtabAPI.pdf)
2020-07-31T23:19:13+00:00dyninst v10.2.1dyninst v10.2.12020-09-10T03:28:37+00:00## Bug fixes
- Memory leak fixes
- Correct a substantial leak in singleton_object_pool affecting InstructionAPI
- Fix instruction decoding leaks for power and aarch64
- Fix memory leak in SymEval::expandInsn
- Fix aliasing bug of Region::buffer on copy
- Cleanup memory handling when emitting Elf for static libraries
## Enhancements
- Code cleanup
- Remove use of deprecated C++ exception specifications
- Remove deprecated parts of BPatch_flowGraph and miniTramp
## Build changes
- Remove use of cotire
- Fix cmake configuration when building with -pie
---
## Manuals
- [DyninstAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 10.2](https://github.com/dyninst/dyninst/blob/fcc0d27aa458aacb5a12818beb43509d45848938/symtabAPI/doc/symtabAPI.pdf)
2020-09-10T03:28:37+00:00dyninst v11.0.0dyninst v11.0.02021-04-08T21:01:12+00:00## Removed deprecated functionality
- JumpTableIndexPred::FillInOutEdges
- BoundFactCalculator::CheckZeroExtend
- BoundsFactCalculator::ThunkBound
- binaryEdit::deleteBinaryEdit
- CFGFactor::destroy_all
- BPatch_regExpr
- BPatch_addressSpace::findFunctionByAddr
- insnCodeGen::generate
- AddressSpace::getAddressWidth
- BPatch_process::enableDumpPatchedImage
- BPatch_snippet::getCost*
- InstrucIter, vectorSet, and lineDict classes
- Support for bluegene, vxworks, sparc, and AIX
- Replace pdvector with std::vector
- The entire serialization infrasturcture
## Minimum version requirements
- Boost >= 1.67
- gcc >= 6.0
- Standards-compliant c++11 ABI in lib[std]c++
## Enhancements
- DWARF handling
- Fully support separate debug files
- Disable parallel parsing of DWARF due to a thread safety issue in elfutils
- Support debuginfod
- GPUs
- Initial support for AMD and Intel GPU code parsing
- Code slicing on NVIDIA GPUs
- Code cleanup
- Substantially reduce number of compiler warnings in public headers
- BPatch
- Callee lookup defaults to "by name" when other modes fail
## Bug fixes
- Symtab
- Fix non-deterministic inline function lookup for OpenMP outlined code
- Handle C++ name demangling correctly and uniformly
- Indirect call analysis
- Fix detection of indirect calls to PLT stubs subtly broken by v10.2.1
- Patch memory leaks in emitElf
See the complete [CHANGELOG](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/CHANGELOG.md).
---
## Manuals
- [DyninstAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/symtabAPI/doc/symtabAPI.pdf)
2021-04-08T21:01:12+00:00dyninst v11.0.1dyninst v11.0.12021-06-15T02:27:18+00:00## Enhancements
- Position-Independent Executable (PIE) handling
- Dyninst now correctly determines the properties of PIE binaries
- position-independent executable archive files (i.e., built with -static-pie using gcc) are not supported
## Bug fixes
- DWARF
- Correctly handle return values from `dwarf_getabbrevcode`
- Parsing
- Fix data races from PowerPC when using more than 15 OpenMP threads
- Skip parsing of blocks with an empty code buffer
- Correctly parse catch blocks
- Do not treat symbols in any text sections as data (.text, .init, or .fini)
- Fix implicit operand decoding of x86 instructions on non-x86 architectures
- Build system
- Pass CMake build flags when configuring dyninstAPI_RT
- Correctly find version information when building against tbb 2021.3 or newer
See the complete [CHANGELOG](https://github.com/dyninst/dyninst/blob/5c7e0ee327399cfae50d77f977ff6655c2ca3ae4/CHANGELOG.md)
---
## Manuals
- [DyninstAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 11.0](https://github.com/dyninst/dyninst/blob/481abaf20477a20fc533087010dcb671436de38b/symtabAPI/doc/symtabAPI.pdf)
2021-06-15T02:27:18+00:00dyninst v12.0.0dyninst v12.0.02021-11-11T20:48:14+00:00## Enhancements
- When using elfutils-0.186 or newer, Dyninst can parse nvidia enhanced line maps
- MachRegister now supports the ppc64le register set for Rose semantics
- Added xsave, xsavec, and xrstor instructions for x86_64
- Dyninst now compiles cleanly when using strong compiler warnings
- symtabAPI::typeScalar now supports DWARF4 base type entry encodings
## Bug Fixes
- Fixed a bug in .dyninst_heap section reported by Gentoo CI
- BPatch and Symtab objects can now be displayed using iostreams
- Floating point register usage is now correctly determined on aarch64
- Uncalled functions with internal linkage are no longer relocated on aarch64
- dataflowAPI no longer asserts on newer ppc64le machines
- We are working to extend instruction support for ppc64le
- More than 80 general bug fixes discovered using strong compiler warnings
## ABI breakages
- Removed several empty stub functions from AddressSpace
- Removed memory emulation on Windows
- The code had been non-functional since ~2012
- Unused member variables were removed from the Symtab class
- ELF STABs are no longer supported
- Remove abandoned Module::getAllVariables
## Build changes
- Remove support for ppc32
- Remove support for Cray CNL
- Remove old XLC behavior
- STERILE_BUILD is now on by default
- Minimum version of Boost has been increased to 1.70.0
- Debug build configuration now uses -Og and -g3
- Updated to the C11 standard
- Dyninst is now buildable with clang
See the complete [CHANGELOG](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/CHANGELOG.md)
---
## Manuals
- [DyninstAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/symtabAPI/doc/symtabAPI.pdf)
2021-11-11T20:48:14+00:00dyninst v12.0.1dyninst v12.0.12021-11-23T21:52:02+00:00## Enhancements
- Refactor several DwarfWalker internal interfaces
- Add readable name for Symtab::typeRef
## Build changes
- Increase minimum elfutils version to 0.186
- Remove NVIDIA external line map configure check
- Add conflict with CMake 3.19.0
See the complete [CHANGELOG](https://github.com/dyninst/dyninst/blob/91ede1ff4309c3ebb5518d0a8d43befd3eb5ceae/CHANGELOG.md)
---
## Manuals
- [DyninstAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.0](https://github.com/dyninst/dyninst/blob/154dde783dbadd502c25b451e10eecdc3b6c732b/symtabAPI/doc/symtabAPI.pdf)
2021-11-23T21:52:02+00:00dyninst v12.1.0-rc1dyninst v12.1.0-rc12022-02-23T16:17:36+00:00Release candidate for 12.1.0.
Enhancements
- Add preliminary support for AMDGPU CDNA2 architecture
- Fix linker error with glibc-2.35+ to support multiple namespaces
- Fix ELF parsing for NVIDIA binaries generated by CUDA-11.6+
- Reduce parsing time for functions called from many locations
Build changes
- Add a Dockerfile for automated GitHub workflow testing
- Updates to get Symlite building
2022-02-23T16:17:36+00:00dyninst v12.1.0-rc2dyninst v12.1.0-rc22022-02-27T19:50:42+00:00Release candidate for 12.1.0.
## Bug Fixes
- Fix compiler warnings in amdgpu cdna2 code
- Fix static analysis warnings for classes in AMDGPU (member variable init, dead code, no returns)
## Enhancements
- Remove duplicate headers for AMDGPU
- Move Vega files to AMDGPU directory
## Build Changes
- Propagate AMDGPU subdirectory layout to 'install/include' for amdgpu/cdna2
2022-02-27T19:50:42+00:00dyninst v12.1.0-rc3dyninst v12.1.0-rc32022-03-09T15:46:51+00:00Release candidate for 12.1.0.
## CI Testing
Docker: simplify build script (#1212)
Docker: use more OS packages (#1211)
## Bug fixes
Make a couple constant 64-bit ULL to avoid getting truncated during shifts (#1207)
Fix potential buffer overrun in AMDGPU decoders (#1208)2022-03-09T15:46:51+00:00dyninst v12.1.0dyninst v12.1.02022-03-09T22:43:23+00:00## Enhancements
- Implement first steps of multiple namespaces in glibc-2.35+
- Add instruction parsing for AMD's CDNA2 GPU architecture
- Code cleanup of unused code and variables in SymtabAPI
- Correctly handle DWARF subroutines during parallel parsing
- Support ELF/DWARF under CUDA-11.6 and newer
- Speed up the case where a function is called from many locations in ParseAPI
## Bug Fixes
- Fix potential buffer overrun in AMDGPU decoders
- Clean up memory allocations in SymtabAPI and BPatch
## Continuous Integration
- Add Docker image for testing and deploying Dyninst on Ubuntu-20.04 on x86_64
## Build Fixes
- Fix building of symlite
---
## Manuals
- [DyninstAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.1](https://github.com/dyninst/dyninst/blob/14d9d44f0c03199d76333b9571b1f6ed9e183e46/symtabAPI/doc/symtabAPI.pdf)2022-03-09T22:43:23+00:00dyninst v12.2.0dyninst v12.2.02022-07-28T21:27:27+00:00## Enhancements
- Always use exec entry point for parse hints in stripped binaries
- Correctly compute boundaries of functions containing shared code
- Improve compiler diagnostics and usage of pragmas
- Parse names for inlined functions in DWARF
## Bug fixes
- Fix data races when storing line information entries
- Fix decoding of DWARF expressions into machine registers for Intel GPUs
- Correctly propagate pc ranges for blocks and local variables
- Fix format string errors in stackwalk/callchecker.C
## Build system
- Remove endian CMake check (we only support little-endian)
- Enforce formatting of CMake files using cmake-format
- Remove unused options BUILD_DOCS and BUILD_TARBALLS
- Require bfd linker when building with LTO enabled
---
## Manuals
- [DyninstAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.2](https://github.com/dyninst/dyninst/blob/02c20e9169a9e6ca9da7a486df4e9160143063cb/symtabAPI/doc/symtabAPI.pdf)
2022-07-28T21:27:27+00:00dyninst v12.2.1dyninst v12.2.12022-11-21T19:46:53+00:00## Enhancements
- ParseAPI: improve tail call recognition (#1315)
- Support hash_compare concept from TBB >= 2021.1 (#1316)
- Various compile warning fixes (#1325, #1324)
- Improve instruction stringification formatting (#1311, #1323, #1313)
- Allow assignment conversion of an Instruction without a frame pointer (#1314)
- Fix incorrect offset in location list PC range values (#1297)
---
## Manuals
- [DyninstAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.2.1](https://github.com/dyninst/dyninst/blob/def4204359d2051958d99e8f3c515dbc9ff3edf0/symtabAPI/doc/symtabAPI.pdf)2022-11-21T19:46:53+00:00dyninst v12.3.0dyninst v12.3.02023-02-22T21:49:43+00:00## New Features
- Continued development on support for the AMD gfx908 architecture
- InstructionAPI: MI100, MI200, MI125 (partial)
- ParseAPI: Directcontrol flow analysis for MI100, MI200, MI125
- DataflowAPI: Indirect control analysis for MI125
- Add support for Intel's ENDBR32/64 instruction used by CET (#1368)
## Enhancements
- Improve cross-platform static instrumentation on aarch64 (#1373)
- Update detection of DWARF languages (#1357)
- Substantially improve callee lookup speed (#1337)
- Fix encoding for vex2-encoded vpand instruction (#1364)
## Bug Fixes
- Add missing include files for newer gcc/clang (#1385, #1384, #1344)
---
## Manuals
- [DyninstAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/dyninstAPI/doc/dyninstAPI.pdf)
- [PatchAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/patchAPI/doc/patchAPI.pdf)
- [ParseAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/parseAPI/doc/parseAPI.pdf)
- [DataflowAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/dataflowAPI/doc/dataflowAPI.pdf)
- [InstructionAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/instructionAPI/doc/instructionAPI.pdf)
- [SymtabAPI 12.3.0](https://github.com/dyninst/dyninst/blob/334b6856e28fd34a698ad74aa277f1399a814183/symtabAPI/doc/symtabAPI.pdf)
2023-02-22T21:49:43+00:00