Skip to content

Latest commit

 

History

History
1522 lines (1367 loc) · 137 KB

CHANGELOG.md

File metadata and controls

1522 lines (1367 loc) · 137 KB

Change Log

13.0.0 (2024-02-28)

Full Changelog

  • release 13.0.0 versions & docs (1695)
  • Unify software interrupt instruction detection (1693)
  • Unify system call detection (1692)
  • Remove explicit check for system calls in parse_frame_one_iteration (1691)
  • update copyright header and date (1689)
  • Fix logic error in IA_IAPI::isInterruptOrSyscall (1683)
  • Add CMake option to control symbol visibility (1688)
  • Improve syscall and interrupt instruction detection (1686)
  • Remove unreachable code in BPatch_addressSpace::getRegisters (1687)
  • Refactor IA_IAPI::isSyscall,isInterrupt into arch-specific files (1684)
  • Remove dyninstAPI/Relocation/Transformers/Defensive.C (1685)
  • IndirectAnalyzer: fix potential segfault (1672)
  • correctly detect x86 LEA instructions as NOP (1681)
  • fix operator<< for Module* (1682)
  • Remove unprintable characters from common/src/Timer.C (1679)
  • Use code region boundaries for ParseAPI::Function::less comparator (1668)
  • GithubCI: update systemtap weekly test build (1676)
  • GithubCI: don't fail fast for PR tests (1666)
  • GithubCI: only build hpctoolkit@develop (1667)
  • GithubCI: Add weekly test for parsing all system libs in containers (1665)
  • Github CI: Use gcc-13 for c++2{0,3} (1664)
  • Suppress -Wframe-larger-than in power_opcode_table in clang-1{3,7} (1662)
  • Fix libstdc++ noexcept requirement for Operand ctor (1663)
  • Github CI: Pass '-y' to apt when removing libomp (1661)
  • Docker: only build base images in build_base_images.sh (1660)
  • GithubCI: Add gcc-13, clang-16,17 to multicompiler builds (1659)
  • Don't use capture lambda in ParseAPI::parsing_printf_int (1658)
  • Remove common/machineType.h (1657)
  • Remove non-printable characters from common/lprintf.h (1656)
  • Move addrRange.h into stackwalk (1655)
  • Write to stderr in ParseAPI::parsing_printf (1650)
  • Remove dataflowAPI/src/templates.C (1654)
  • GithubCI : Add more Ubuntu and Fedora versions (1652)
  • Remove proccontrol/dumplibpthread.asm (1651)
  • Docker: Use named arguments in build scripts (1648)
  • Docker: add script to build all base images (1649)
  • Fix register check in LivenessAnalyzer::isMMX (1644)
  • Remove unused debug code from AMD 908,90a instruction decoder (1645)
  • Clean up InstructionAPI::Operation (1643)
  • Set new CMake policy for upper-case _ROOT variables (1642)
  • Clean up includes in instructionAPI/Result.h (1641)
  • Add debugging functions for instructionAPI (1640)
  • Add DWARF mappings for cr8-15 and dr8-15 (1639)
  • Add missing x86_64 control and debug registers (1638)
  • Synchronize x86 mnemonics with Capstone (1634)
  • Add x86_{i386,64} memory-management and x87 control/status registers (1636)
  • Update x86 DWARF registers maps (1633)
  • Remove deleted x86 RegisterDictionary functions (1632)
  • Clean up and improve documentation of x86_64 registers (1630)
  • Clean up and improve documentation of x86_32 registers (1629)
  • Remove MachineRegister::getSubRegValue (1631)
  • Construct a Module from the CU's offset not its PC (1626)
  • Restructure operand decoding logic for AMDGPU (1614)
  • Deprecate Symtab::getOrCreateModule (1623)
  • Explicitly mark overridden member functions in Object-elf (1624)
  • Clean up dead code in common/ast.C (1622)
  • Clean up common/Types.h (1619)
  • Fix astOperatorNode semantics (1621)
  • Remove dead code binaryEdit.C (1620)
  • Remove addTrapTableSpace_win and addTrapTable_win in binaryEdit.C (1618)
  • Remove code protected by USE_ADDRESS_MAPS (1617)
  • Remove useless assert in binaryEdit::writeFile (1616)
  • Remove extraneous variables in Symbol.C (1615)
  • Fix MachRegister bool checks (1613)
  • Improve name handling in MachRegister (1612)
  • Remove locking before calls to convertDebugOffset (1611)
  • Make null pointer checks for ParseAPI::Block::_obj consistent (1608)
  • Guarantee operands in AstOperatorNode are non-null (1609)
  • Remove FunctionBase::ranges_lock (1596)
  • Remove redundant declaration of SymtabAPI::FuncRangeCollection (1597)
  • Remove Symtab(MappedFile*) (1598)
  • Remove Symtab::exportXML,exportBin,importBin (1599)
  • Remove module contains check in Symtab::create{Function,Variable} (1601)
  • Remove dyninst.h, stringDecl.h (1600)
  • Make SymtabAPI::errMsg thread_local (1602)
  • Clean up MachRegister class (1604)
  • Lazily parse function ranges in Symtab::getContainingFunction (1603)
  • Remove char* ctor overload (1605)
  • Remove Symtab::newModule declaration (1606)
  • Remove BINEDIT_DEBUG (1607)
  • Remove Symtab::getSymbolByIndex (1610)
  • Remove common/std_namesp.h (1594)
  • Remove codeRange::operator<< (1595)
  • Refactor common/dyn_regs.h (1590)
  • Remove Pair.h and pdpair (1593)
  • Remove Singleton.h (1592)
  • Remove BPatch_flowGraph::getLoopMinMaxSourceLines (1591)
  • Remove instructionAPI/h/RegisterIDs.h (1589)
  • Reorder enumerators in instructionAPI::Result::Result_Type (1588)
  • Fix redundant parsing of linemap information (1587)
  • Move entryIDs into separate data files (1585)
  • Remove mapped_module::getAddrFromLine (1586)
  • Handle implicit operand for call instruction to ROSE (1583)
  • Add missing memory operand sizes and decoding in instructionAPI::Result (1582)
  • Fix line information parsing for CUs with no aranges (1581)
  • Fix naming of Modules with relative CU paths (1580)
  • Replace Module::getAllFunctions (1579)
  • Reduce usage of concurrent.h (1578)
  • Remove Module::findFunctionByEntryOffset (1577)
  • Remove MODULE_ANNOTATABLE_CLASS (1576)
  • Remove DWARFisms from Symtab::Module (1575)
  • Deprecate mapped_module::truncateLineFilenames (1574)
  • Refactor symtab/Module.h (1573)
  • Use Symtab::getContainingModule instead of Symtab::findModuleByOffset (1572)
  • Add Symtab::getContainingModule(Offset) (1571)
  • warning fix: false positive maybe uninitialized (1570)
  • fix gcc 6's broken __has_x_attribute (1569)
  • Refactor Symtab::getOrCreateModule (1568)
  • Remove Symtab::findModuleByName(Module *&, std::string) (1565)
  • Remove Module::findFunctionByEntryOffset (1561)
  • Remove Module::findFunctionsByName (1562)
  • Fix inline detection in findFuncName (1563)
  • Improve DWARF debugging in Object::fix_global_symbol_modules_static_dwarf (1564)
  • Clean up dead code in dwarfWalker.C (1566)
  • Remove Symtab::changeSymbolOffset (1567)
  • Remove DwarfWalker::setModuleFromName (1546)
  • GithubCI: add testing on Fedora-39 (1560)
  • warning fix: improve logical-op handling (1559)
  • Create unique names for unnamed partial DWARF DIEs (1558)
  • Drop Support for AMDGPU GFX900(VEGA) (1555)
  • reorganize and cleanup Symtab.h (1557)
  • Mark Symtab::findModuleByOffset(Module*&,Offset) with DYNINST_DEPRECATED (1551)
  • fix deprecated annotation warning using clang (1554)
  • GithubCI: fix names in consumer weekly build (1553)
  • Add Initial Support for GFX940 (1541)
  • Add findModulesByName(std::string const&) (1552)
  • GithubCI: improve error handling (1548)
  • add deprecated annotation support (1550)
  • Remove public Symtab API for adding line information (1547)
  • Add new Symtab interface for accessing modules by offset (1545)
  • Mark SymtabAPI::Function::removeSymbol as 'override' (1549)
  • Replace boost::multi_index_container with tbb::concurrent_unordered_set in symtab_impl (1544)
  • Make Symtab::getDefaultModule const (1543)
  • Make a default module a class invariant in Symtab (1538)
  • Default-initialized 'std::once_flag's in symtab_impl (1539)
  • Use fully-qualified name in fix_global_symbol_modules_static_dwarf (1540)
  • Fix duplicate symbol entries in Symtab:everyFunction (1542)
  • Fix overflow of fields in instruction layout (1476)
  • Refactor DwarfWalker::dieRanges (1535)
  • Remove dwarfWalker::getHighPCLowPC (1536)
  • Hide implementations of complex data structures in SymtabAPI::Symtab (1531)
  • Refactor Symtab::addSymbolToAggregate (1534)
  • Remove dwarfWalker::deallocateLocationList (1532)
  • GithubCI: allow manually running all CI workflows (1533)
  • Remove Symtab::fixup_SymbolAddr (1530)
  • GithubCI: Re-enable consumer builds (1529)
  • Github CI: Add weekly build of MUST (1527)
  • GithubCI: Allow conumer builds to be run manually (1528)
  • Github CI: Build TAU weekly (1526)
  • Github CI: Build LLNL/STAT weekly (1525)
  • Github CI: Build systemtap weekly (1524)
  • Add indirect branch support for gfx908 and gfx90a (1519)
  • Fix int size of rose operations return values (1522)
  • Fix Implementation for RoseOperation::extractOp (1511)
  • Don't create a name for artificial DIEs with a DW_AT_name (1520)
  • Github CI: use correct directory when running external-tests on PR (1521)
  • Remove DwarfWalker::version member variable (1516)
  • Parse all DWARF source files in DwarfWalker::buildSrcFiles (1515)
  • Refactor dwarf/dwarf_names.h (1514)
  • Github CI: execute external tests on PR (1512)
  • Github CI: terminate PR pipeline at first failure (1513)
  • Unify naming of Modules (1500)
  • Remove ret_lock from SymtabAPI::FunctionBase (1504)
  • Remove hasSpecification param from DwarfWalker::getReturnType (1507)
  • Use full filenames when handling Modules (1501)
  • Fix inverted logic in DwarfDyninst::is_cudie (1505)
  • Don't check for existing return type when parsing DWARF subprogram (1509)
  • Remove FunctionBase::setReturnType(Type*) (1503)
  • Workarounds to align decoder output with llvm-objdump (1508)
  • Add newline in log message in DwarfWalker::parseModule (1506)
  • Fix responsibility inversion in Module::finalizeRanges (1498)
  • Use uniform CU checks in DwarfWalker (1499)
  • Remove pd_dwarf_handler (1496)
  • Refactor extracting CU tags from DWARF (1495)
  • Make Symtab::parseTypesNow thread-safe (1497)
  • Move inst2ast example to examples repo (1492)
  • Remove parseAPI examples (1494)
  • Remove patchAPI/test/findPoint (1490)
  • Remove patchAPI/example (1491)
  • Remove AObject::symsToModules_ (1488)
  • Remove Module::setName (1485)
  • Remove declaration of image::getModuleLanguageInfo (1486)
  • Remove declaration of Object::load_shared_object (1487)
  • Remove unused Object::getFileName (1489)
  • Clean up unused global variables in Object-elf.C (1483)
  • Remove unused Object::find_symbol in Object-elf (1480)
  • Remove Symtab::updateIndices (1481)
  • Clean up SymtabAPI::LineInformation class (1479)
  • Remove Symtab::forceFullLineInfoParse (1478)
  • Don't include compiler-specific headers (1477)
  • Fix AMDGPU register formatting (1473)
  • Clean up SymtabAPI::Function classes (1475)
  • Fix hang when creating ELF dynamic sections (1474)
  • Do not decode operands for invalid opcode (1467)
  • Add support for EM_INTELGT (1468)
  • do not export Instruction::appendOperand (1466)
  • add getDisplayOrderedOperands interface (1465)
  • modernize ArchSpecificFormatter classes (1464)
  • improve intel instruction & operand formatting (1463)
  • fix x86_64 ret instruction formatting (1457)
  • modernize InstructionAPI::Operand class (1456)
  • Fix x86 misspelled, incorrect, and invalid opcodes (1421)
  • Remove Object::dwarf_parse_aranges (1462)
  • Fix EM_AMDGPU to use RELA as Region Type (1444)
  • Remove lazy initialization of IBSTrees in Symtab (1454)
  • Make Symtab::getContainingInlinedFunction lazy parsing threadsafe (1452)
  • Clean up Symtab constructors (1451)
  • Explicitly delete unusable special member functions in Symtab (1450)
  • Remove Symtab::mfForDebugInfo (1449)
  • Remove Symtab::checkPPC64DescriptorSymbols (1448)
  • Remove Symtab copy constructor (1447)
  • add header files to directly define std:: syms (1443)
  • Fix vector instruction lengths (1439)
  • Fix several resource leaks (1435)
  • Fix undefined behavior in integer operations (1434)
  • Prevent use of possibly-uninitialized local variable (1433)
  • Fix uninitialized member variables (1431)
  • Fix use of null pointer after check (1432)
  • Protect against self-assignment in copy constructors (1430)
  • Fix windows warnings (1429)
  • Remove virtual calls in constructor/destructor (1428)
  • AddressTranslateSysV::adjustForAddrSpaceWrap: Fix C file descriptor leak (1427)
  • Make CondVar non-copyable, non-moveable (1426)
  • Github CI: increase number of build jobs (1424)
  • Github CI: make compiler multi-build a cron job (1425)
  • CI compiler multibuilds (1415)
  • Use default TBB when doing CI spack build (1423)
  • Add ubuntu-22.04 to dev container build (1419)
  • Refactor Dockerfile.ubuntu (1420)
  • warning fix: stack frame size (1418)
  • Make InstructionAPI::isArrayIndexValid const. (1416)
  • CMake modernization (1391)
  • Add callback for parsing unknown instructions (1276)
  • Update GFX90A Decoder ISA-SPEC(02/22/23) (1407)
  • Update GFX908 Decoder ISA-SPEC(02/22/23) (1408)
  • Add CI workflow to build consumers of Dyninst (1412)
  • CI workflow to build from spack (1411)
  • Rename Architecture AMDGPU_CDNA2 to AMDGPU_GFX90A (1404)
  • Fix link bug in insnCodeGen::loadImmIntoReg on aarch64 (1405)
  • remove unneeded zero length files (1403)
  • Fix UB in dwarf/dwarf_subrange.cpp::get_type (1402)
  • warning fix: stack frame larger than (1397)
  • warning fix: unused parameter (conditionally) (1397)
  • fix broken call to base class function (1397)
  • enable warnings in dataflowAPI/src (1397)
  • warning fix: unused variable (clang compiler bug) (1397)
  • warning fix: suppress VLA warning (1397)
  • warning fix: std::iterator is deprecated (1397)
  • warning fix: missing noexcept (1397)
  • warning fix: deprecated implicit ctor and op= (1397)
  • warning fix: shadow (delete variable) (1397)
  • warning fix: shadow (rename) (1397)
  • warning fix: potentially evaluated expression (1397)
  • warning fix: overloaded virtual overrides (1397)
  • warning fix: copy ctor missing base class (1397)
  • warning fix: case fallthough (1397)
  • warning fix: printf format related (1397)
  • warning fix: reorder ctor initialization list (1397)
  • warning fix: const correctness (1397)
  • warning fix: unused variables (1397)
  • warning fix: unused parameters (1397)
  • warning fix: variadic macro (1397)
  • warning fix: extraneous semicolons (1397)
  • Github CI: update dev container deployment (1400)
  • Github CI: add line continuation in dev-containers.yaml (1399)
  • Add PR testing Github CI (1393)
  • Replace 'cerr' with 'dwarf_print' in DwarfWalker::decodeLocationList (1395)
  • warning fix: deprecated copy with user dtor (1394)
  • warning fix: unneeded internal declaration (1394)
  • warning fix: ambiguous reversed operator (derived) (1394)
  • warning fix: stack frame larger than (1394)
  • warning fix: logical op (1394)
  • warning fix: C function decls without prototype (1394)
  • warning fix: set but unused variables (1394)
  • warning fix: ambiguous reversed operator (1394)
  • warning fix: std::random_shuffle is deprecated (1394)
  • warning fix: missing noexcept (1394)
  • warning fix: std::iterator is deprecated (1394)
  • warning fix: unused private field (1394)
  • warning fix: deprecated copy/op= with user provided dtor (1394)
  • warning fix: remove unused variables/members (1394)
  • warning fix: shadow (variables) (1394)
  • warning fix: shadow (enumerator names) (1394)
  • replace C-style and functional casts (1394)
  • write_memory_as to append_memory_as as appropriate (1394)
  • warning fix: increased alignment cast (C casts) (1394)
  • warning fix: increased alignment cast (pointers) (1394)
  • warning fix: increased alignment cast (1394)
  • warning fix: pessimizing move (1394)
  • warning fix: missing override (1394)
  • warning fix: tautological always true comparison (1394)
  • warning fix: mismatched class/struct (1394)
  • warning fix: [[fallthrough]] requires C++ 17 (1394)
  • Restore PPC special-purpose registers in opposite order of saving them (1392)
  • Aarch64: Fix restoring special purpose registers order (1000)
  • Avoid possible copy in BPatch::createEnum (1390)
  • Merge pull request #1389 from dyninst/wuxx1279/gfx908/clang-error
  • add InstructionDecoderImpl::makeRegisterExpression to derived classes
  • Fix virtual derived signature to match base class
  • Update DwarfWalker subrange handling (1369)
  • use default allocator for tbb::concurrent_hash_map (1332)
  • fix infinite recursion in LineInformation::addLine (1331)
  • eliminate deprecated C++ function objects (1331)
  • Fix BinaryEdit::getResolvedLibraryPath for Ubuntu 22.04 (1362)
  • Make SymtabCodeSource constructor const correct (1293)
  • SymtabAPI::Type: add support for C++ r-value references (1159)
  • Improve DWARF enum parsing in Symtab::Type (1164)
  • Update global ELF ctor/dtor instrumentation for static executables (1355)

12.3.0 (2023-02-22)

Full Changelog

  • Add missing includes (1385)
  • explicitly include (1384)
  • remove trailing usage of cout.clear (1383)
  • Fix all-through instructions for newly added AMD gpu gfx908 (1381)
  • Added support for gfx908 based on the XML-ISA-DROP for MI100 (1283)
  • Allow CFG analysis based on instructionAPI alone w/out semantics (1379)
  • Prevent fall-through analysis of amd gpu swap/set pc instructions (1376)
  • x86 8-bit immediate values were interpreted incorrectly cross-platform. (1373)
  • update spack.yaml for spack v0.19.1 (1367)
  • Remove use of couts in the AMDGPU instruction decoders (1371)
  • handle ENDBR64 (1368)
  • Fixed nullptr issues in dyninstAPI/src/mapped_object.C (1361)
  • Fix sema type for vex2 encoded vpand (1364)
  • Replace DwarfWalker::findString with DwarfWalker::find_call_file (1360)
  • Update detection of DWARF languages (1357)
  • Remove AObject::pickLanguage (1358)
  • BPatch_snippet::generateArrayRef - fix possible null pointer access (1356)
  • Use instrumentation logging in baseTramp::guarded (1354)
  • Remove special global ctor/dtor search in ppc for static binaries (1353)
  • Refactor common/src/Types.h (1351)
  • add missing include file (1344)
  • Remove dead implementation of IA_power::isLinkerStub (1342)
  • Lookup functions in the binding table directly (1337)
  • Remove outdated Boost version checks (1329)

12.2.1 (2022-11-21)

Full Changelog

  • Fix shadowing of 'filename' member in Elf_X::findDebugFile (1325)
  • Ignore unknown pragma warnings when building without OpenMP (1324)
  • fix Instruction class to allow valid assignment (1323)
  • ParseAPI: improve tail call recognition (1315)
  • Support hash_compare concept from TBB >= 2021.1 (1316)
  • Remove unused TBB from parseAPI (1317)
  • Use dyn_c_hash_map in DwarfWalker (1318)
  • Directly link to common in dynC_API (1319)
  • Manually add hex prefix when formatting an Operand (1313)
  • Allow assignment conversion without framepointer (1314)
  • Fix incorrect format string in Result.h for u48 / s48 / u64 / s64 (1311)
  • Do not build dyninstAPI_RT as separate CMake project (1309)
  • Fix possible null pointer access in BPatch_module::findFunctionByAddress (1308)
  • Search 'elfutils' subdirectory for libdebuginfod/includedir (1307)
  • Fix public header deletes (1301)
  • fix location list PC range values (1297)
  • Docker - use ppa for gcc11 (1291)

12.2.0 (2022-07-28)

Full Changelog

  • Add exec entry point to parse hints is missing
  • fix races with parallel analysis of cubins (1284)
  • Docker: make build.sh verbose, fix file copy bug in Dockerfile.test (1273)
  • Remove endian CMake check (1270)
  • Update and enforce formatting of CMake files (1267)
  • Fix bug in processing library paths in FindLibIberty.cmake (1266)
  • Fix decoding of DWARF expressions into machine registers for Intel GPUs (1262)
  • Docker: don't use autamus cache (1259)
  • Remove unused build options (1253)
  • Fix dyninstAPI_RT files to build with older glibc (1252)
  • Redo finalization to get correct function boundiaries when (1249)
  • Fix format string errors in stackwalk/callchecker.C (1250)
  • Make dyninstAPI_RT files build with standard C (1246)
  • Add cmake options for C/C++ language standards (1246)
  • Use bfd linker for LTO (1248)
  • Cleanup (remove) ancient linux kernel support (1241)
  • remove unused files containing pragmas (1240)
  • Remove unneeded #pragma's (1240)
  • Add compiler warning related cmake options (1239)
  • Add cmake option to disable diagnostic suppressions (1239)
  • Fix frame-larger-than warning (1239)
  • Remove MSC compiler warning suppressions (1239)
  • Improve compiler diagnostic suppression handling (1239)
  • Remove unused git files (1244)
  • Docker: make compile warnings fatal (1242)
  • Docker: use external-tests instead of testsuite in base image (1209)
  • Docker: don't build Dyninst through spack for the environment (1222)
  • Docker: use more OS packages for dependencies (1221)
  • Remove void pointer arithmetic when using Valgrind annotations (1236)
  • Add parsing of names for inlined functions in DWARF (1237)
  • Remove BUILD_RT option (1238)
  • Fix warnings with cmake's MINSIZEREL build type (1235)
  • Correctly propagate pc ranges for blocks and local variables (1226)
  • Docker: testing workflow to run libabigail (1220)
  • Remove usage of DW_AT_MIPS_linkage_name (1223)
  • Docker: adding a workflow for release (1219)
  • Merge pull request #1217 from dyninst/thaines/docker_base_container_defaults
  • Update dependency versions in base container config

12.1.0 (2022-03-09)

Full Changelog

  • Correctly handle DWARF subroutines during parallel parsing (1215)
  • Docker: simplify build script (1212)
  • Make a couple constant 64-bit ULL to avoid getting truncated during shifts (1207)
  • Docker: use more OS packages (1211)
  • Fix potential buffer overrun in AMDGPU decoders (1208)
  • Code clean up for AMDGPU (1205)
  • Tidy up classes in AMDGPU (1204)
  • Fix compiler warnings in amdgpu cdna2 code (1198)
  • Build fixes for amdgpu/cdna2 (1203)
  • Add Support for AMDGPU CDNA2 Architectures based on XML ISA spec (1107)
  • fix building of symlite (1197)
  • Additional cleanup of memory emulation for hybrid analysis (1172)
  • Allow zero-length ELF program headers (1192)
  • Remove dead code and variables related to Symtab::data_ptr_ and Symtab::code_ptr_ (1192)
  • Remove dead code Object::elf_vaddr_to_ptr (1192)
  • glibc r_debug extensions to support multiple namespaces (1175)
  • Symtab::module documentation cleanup (1189)
  • Dockerfile: use explicit packages for 'spack external find' (1195)
  • ParseAPI: Speed up the case where a function is called from many locations (1190)
  • ELF+DWARF: always parse first entry in source file table (1184)
  • Remove interposed definition of _r_debug (1176)
  • start of work to add automated testing to dyninst! (1183)
  • adding dyninst release trigger (1181)
  • fixing workflow trigger (1182)
  • Adding first stage of automated docker build (1180)
  • Remove erroneous use of realloc in symtabAPI/Type-mem.h (1170)
  • Clean up memoryTracker usage in binaryEdit (877)

12.0.1 (2021-11-23)

Full Changelog

Build Changes

  • Remove NVIDIA external line map configure check (1162)
  • Increase minimum elfutils version to 0.186 (1161)
  • Add conflict with CMake 3.19.0 (1153)

Enhancements

  • Refactor dwarfWalker::findConst (1160)
  • Add readable name for Symtab::typeRef (1157)
  • DwarfWalker: clean up interfaces for findDieName and findName (1154)
  • Added automated docker build for development and testing

12.0.0 (2021-11-11)

Full Changelog

GPU Support

  • Add CMake test to check if libdw supports NVIDIA extended line map
  • Adjust interface changes in elfutils regarding NVIDIA extended line map
  • Add compile-time checking to see if elfutils support nvidia extended line map when the user have specified ENABLE_NVIDIA_EXT_LINE_MAP
  • Fix compilation warning and add cmake option ENABLE_NVIDIA_EXT_LINE_MAP
    1. Handle unrelocated line map entries for CUBIN 2. Remove redundant addFunctionRange call to improve performance 3. Add some debug logging
  • Inline context from nvidia extended line map identifies an inlined call path
  • Start to construct inlining call chains using Nvidia's extended line map
  • cleaning up code for ingesting nvidia extended linemaps
  • first draft of support for nvidia enhanced line maps

Enhancements

  • Load callee's address when the callee and caller are in the same module (1056)
  • Give global annotation objects internal linkage and file scope
  • Summit fixes (1108)
  • Add x86 xsavec instruction (1074)
  • Convert TRAMP_*_OFFSET macros to functions (1073)
  • Add x86_64 xrstor instruction (1070)
  • Fix insertion operators in BPatch and Symtab (1069)
  • Add DWARF4 base type entry encodings to symtabAPI::typeScalar (1059)
  • Add xsave instruction (1055)
  • Cleanup orphaned code (1064)

ABI Breakages

  • Remove AddressSpace::causeTemplateInstantiations (1149)
  • Remove unregisterTrapMapping from PCProcess
  • Remove thread registration functions from PCProcess
  • Remove PCProcess::getDeadCode
  • Remove memory emulation (1146)
  • Remove unused generateSimple (1122)
  • Remove unused variables from Symtab
  • Remove special Fortran debug handling
  • Remove stabs from symbol demangling
  • Remove stabs from BPatch
  • Remove stabs from SymtabAPI
  • Remove Module::getAllVariables (1066)

Documentation

  • Improve docs for lookup functions in CodeObject (1147)
  • Update copyright to 2022 (1141)
  • Remove stabs from documentation (1120)

Build Changes

  • Remove ppc32 from builds (1145)
  • Unify meaning of 'cap_32_64' macro (1136)
  • Remove support for Cray CNL (1137)
  • Remove xlc macros (1132)
  • Remove common/src/language.h (1131)
  • Remove usage of arch_ppc and arch_ppc64 (1129)
  • Remove usage of x86_64_cnl (1130)
  • Remove DynC tests (1126)
  • Remove NO_INITIALIZER_LIST_SUPPORT (1125)
  • Turn on STERILE_BUILD by default (1118)
  • update minimum boost version to 1.70.0 (1117)
  • Remove boost_system linking (1112)
  • Enforce detection of libiberty (1099)
  • fix compiler warnings to work with clang (1092)
  • update optimization (-Og) and debug flags (-g3) (1084)
  • use the C11 standard for C code in Dyninst (1086)
  • Make Dyninst buildable with Clang (1021)
  • Remove valueAdded subdirectory completely (1065)
  • Remove valueAdded subdirectory (1063)

Bug Fixes

  • fix statement-like macros (1143)
  • Don't overflow aarch64 float register vector when setting used regs. (1127)
  • fix unused const variable warnings
  • fix pessimizing std::move warnings
  • fix xor operator used as power operator
  • fix misleading indentation warning
  • fix uninitialized this and variable warnings
  • fix float to double promotion warning
  • fix unused const variable warnings
  • Fix possible buffer overflow in BPatch::processCreate
  • Fix uninitialized variable use in DispatcherARM64::iproc_init
  • remove executable flag from .dyninst_heap section (1096)
  • fix broken cast of a char literal to pointer (1090)
  • fix possibly uninitialized variables (1082)
  • fix possible null 'this' pointer dereference (1082)
  • prevent maybe uninitialized warning (1082)
  • adjust large frame threshold for specific sources (1082)
  • fix deprecated implicit assignment operator (1082)
  • fix buffer overflow (1082)
  • fix duplicate branch condition by removing branch (1082)
  • fix out of bounds array access (1082)
  • fix potentially uninitialized variable warning (1082)
  • use unused variable to correct code (1082)
  • remove unused variables (1082)
  • make printf format and argument types match (1082)
  • fix broken bool expression that was always true (1082)
  • add missing initializer braces (1082)
  • make constructor public so class is usable (1082)
  • remove ';' after in-class method definitions (1082)
  • eliminate logical op warning (1082)
  • make implicit double promotions explicit (1082)
  • annotate malloc-like functions (1082)
  • make method noexcept, so noexcept expr can be true (1082)
  • add missing default to switch statement (1082)
  • fix int to void* cast if sizeof(int)<sizeof(void*) (1082)
  • eliminate conversion of NULL to non-pointer type (1082)
  • fix variable signedness (1082)
  • replace if stmt with identical branches with then stmt (1082)
  • fgetc returns an int not a char (1082)
  • do not discard volatile type qualifier in cast (1082)
  • add missing #include <assert.h> (1082)
  • fix unused vars/params/funcs on aarch64 (1082)
  • fix ambiguous type name warning (1082)
  • remove always true || sub-expression (1082)
  • fix possible sprintf buffer overflow (1082)
  • delete unnecessary ambiguous forward class decl (1082)
  • make destructor virtual if a virtual method exist (1082)
  • make printf format and argument signedness match (1082)
  • make printf format and argument types match (1082)
  • add compiler annotation to printf-like functions (1082)
  • fix var-tracking-assignments warnings (1082)
  • remove assert(this) as 'this' should never be null (1082)
  • remove obvious null pointer dereference (1082)
  • fix for C++20 removal of std::allocator methods (1082)
  • make cmp function object operator() a const func (1082)
  • make Boost and TBB include dirs be system includes (1082)
  • fix shadow variable warning, has other brokenness (1082)
  • fix duplicate branch warnings (1082)
  • eliminate switch case fall through warnings (1082)
  • explicit base class initialization in constructor (1082)
  • remove default argument from lambda (1082)
  • remove non-C++ compound literal (1082)
  • do not compile empty compilation units (1082)
  • fix deprecated implicit copy constructor if dtor (1082)
  • add missing copy assignment (1082)
  • fix illegal in C empty brace initialization (1082)
  • disable flexible array member warning in C++ (1082)
  • fix discard qualifiers: make char* -> const char* (1082)
  • fix non-standard use of __VA_ARGS__ (1082)
  • remove excess semicolons as reported by -pedantic (1082)
  • fix overflow warning for 0x90 assigned to a char (1082)
  • fix illegal function pointer to void* compare (1082)
  • remove use of GNU binary operator ?: (1082)
  • remove non-C++ variable length arrays (1082)
  • make printf format and argument types match (1082)
  • fix shadow identifier warnings (1082)
  • enable more warnings and test compiler support (1082)
  • miscellaneous compiler warning cleanups (1082)
  • eliminate switch case fall through warnings (1082)
  • add header with compiler annotation macros (1082)
  • add missing break statements (1082)
  • compute num array elements instead of fixed values (1082)
  • remove dynamic_ and dynamic() from fileDescriptor (1082)
  • remove emptyString static members (1082)
  • delete unnecessary .DS_Store file (1082)

11.0.1 (2021-06-14)

Full Changelog

Enhancements:

  • fix Position Independent Executable (PIE) handling (1042)

Bug Fixes:

  • Find function by address, not by entry (1047)
  • Fix implicit operand decoding of x86 instructions on non-x86 architectures (1044)
  • Fixing calling dwarf_getabbrevcode and refactoring debug logging in common (1037)
  • Search for 'version.h' when determining version for TBB (1041)
  • Fix data races and asserts discovered on Power (1038)
  • Remove the use of C++17's structured binding (1036)
  • Skip parsing of blocks whose code buffer is null (1033)
  • Remove debug printing that causes large output (1029)
  • Fix catch block parsing (1030)
  • Do not treat symbols in any text sections as data (.text, .init, or .fini) (1026)
  • Allow usage of SIGILL for signal trampolines (963)
  • Set -B and -S when configuring dyninstAPI_RT (1020)

11.0.0 (2021-04-08)

Full Changelog

Minimum Version Changes:

  • Bump minimum Boost version to 1.67 (993)
  • Require gcc >= 6.0 (932)
  • Add note about minimum elfutils version (912)
  • Require c++11 thread_local support (860)
  • Require standards-compliant c++11 ABI (882)

GPU Support:

  • Add support for instructions with largest opcode in each instruction family (1014)
  • Add Initial support for Analyzing Indirect Control Flow on Amdgpu Vega (979)
  • Fix unhandled enum values for Intel GPUs (955)
  • Fixing another bug related to amdgpu register names (948)
  • Fix a bug in MachRegister::name for AMD GPUs (928)
  • Add initial support for analyzing AMDGPU binaries (900)
  • Nvidia GPU slicing and support for opening Intel GPU binaries (865)
  • Add arch address for intel gen9 gpus (874)
  • Some necessary changes for overlapping text regions (855)

Enhancements:

  • Update copyrights to 2021 (1015)
  • Add a ParseAPI::Block constructor to allow external parsers to set correctly block end address (1011)
  • Clean up PLTFunction in dyninstAPI/Parse (1003)
  • add erase to 2 std::remove calls
  • Aggregate variable symbols based on offset and size (933)
  • make Symbol methods const (936)
  • Add direct tail call case for Point::getCallee (931)
  • Make assert expressions side effect free (927)
  • Improve single thread's backward slicing speed by 40% (917)
  • make symbol name demangling consistent (#872, #717)
  • Ensure data is copied in memoryTracker::realloc (886)
  • Include in CodeTracker.C (887)
  • clean up BoundFactCalculator constructor (884)
  • CodeSource destructor cleanup (883)
  • Fix memory leaks in BinaryEdit::openResolvedLibraryName (879)
  • Add lookup by name in block_instance::callee (875)
  • cleanup memoryTracker memory handling (876)
  • Provide correct default constructor for parse_func class (878)
  • Correctly destruct AddressSpace objects (871)
  • Update documentation for ParseAPI::CodeObject::CodeObject (870)
  • Remove include cycle in dyntypes.h (868)
  • Cleanup dyn_hash_{set,map} (861)
  • parseThat: remove autotools build files (858)
  • Replace BPatch_vector internal implementation with std::vector (844)
  • InstructionAPI docs: Update InsnCategory values returned from Instruction::getCategory (851)

Bug Fixes:

  • Remove assert in block_instance::callee(std::string const&) (999)
  • Fix breakage introduced by PR990 (997)
  • Fix non-deterministic inline function lookup when bad DWARF is generated for OpenMP outlined code (1012)
  • Fix wrong return value in DwarfHandle::init_dbg (939)
  • Fix memory leaks in emitElf (895)
  • SymElf: fix memory leak of cached demangled names
  • properly check for empty string in parseStabString
  • fix duplicate Windows demangle code
  • Fix PLT function call lookup (1001)
  • Fix undefined behavior in usage of std::transform (862)

DWARF Changes:

  • In DwarfWalker, start a new context dissociated from the current context (1013)
  • DWARF supplemental file and type parsing (1002)
  • Add debuginfod support (736)
  • Suppress parallelism in dwarf parsing when an alternative debug file is present (929)

Compiler Warning Cleanup:

  • Clean up "unused parameter" warnings on Aarch64 (1005)
  • Fix "unused parameter" warnings on PPC64 (1004)
  • Remove dead code from ia32_decode (989)
  • Clean up sign-compare warnings (991)
  • Add the default case in adhocMovementTransformer::isPCRelData to suppress compiler warning (995)
  • Clean up "unused variable" warnings (990)
  • Correctly declare Aggregate::operator<< (988)
  • Fix unhandled switch case in Region::regionType2Str (987)
  • Fix unused values (978)
  • Remove unused parameter 'b' from BoundFactsCalculator::Meet (983)
  • Fix string truncations in parseThat (982)
  • Use std::locale when writing a timeStamp to a stream (981)
  • Remove ignored cast qualifier in SnippetGenerator::findParameter (980)
  • Fix shifts of negative values (976)
  • Remove unused function 'InsertFrames' in parseAPI/Parser (977)
  • Fix deprecated usage of boost::bind (975)
  • Fix inclusion of boost deprecated headers (974)
  • Fix constructor member intializer list reordering (973)
  • Fix pointer arithmetic on 'void*' in codeGen::insert (972)
  • Remove usage of designated initializer in dwarfHandle.C (971)
  • Fix possibly uninitialized local variable in InstructionDecoder_aarch64 (970)
  • Fix ignored qualifiers on some C-style casts in Object-elf::read_val_of_type (969)
  • Fix C-string format specifier mismatch in Operand::getReadSet (968)
  • Fix several C-string truncations in parseThat (967)
  • Fix possible buffer overflow in parseThat::runHunt_binaryEdit (966)
  • Clean up "unused parameter" warnings (965)
  • Fix misleading indentation compiler warning in codeRangeTree::remove (964)
  • Remove empty region_data constructor (960)
  • Fix -Wreturn-type warning (956)
  • Remove unused parameter 'elf' from Object::parse_all_relocations (962)
  • Remove unused 'name' parameter from Collections::addGlobalVariable (961)
  • Fix compile warnings for AMDGPU for Release 11.0 (954)

Build Changes:

  • add missing libiberty include dir (950)
  • Make libiberty detection more flexible (922)
  • Correctly set up libiberty to be consumed by build system (901)

Remove Deprecated Functionality:

  • Remove JumpTableIndexPred::FillInOutEdges (959)
  • Remove BoundFactCalculator::CheckZeroExtend (958)
  • Remove BoundsFactCalculator::ThunkBound (957)
  • API-breaking changes for 11.0 release (920)
  • Remove old InstrucIter class references (890)
  • code cleanup integer funcs to * and / by constants
  • Remove unused lineDict class (880)
  • Remove bluegene support (847)
  • Remove vxworks support (859)
  • Replace pdvector with std::vector (856)
  • Remove vectorSet (857)
  • Remove vestiges of sparc (850)
  • Remove vestiges of AIX (849)
  • Remove binaryEdit::deleteBinaryEdit (866)

10.2.1 (2020-09-09)

Full Changelog

Implemented enhancements:

  • Remove exception specifications (841)
  • Remove unused Doxygen files from instructionAPI (829)
  • Remove deprecated members of BPatch_flowGraph (828)
  • Undeprecate mapped_object::getBaseAddress (827)
  • Remove unused symtabAPI/doc/symtab-text.txt (826)
  • Make ~DynObject virtual (813)
  • Remove cotire (816)
  • Fix cmake configuration with -pie (817)
  • Remove usage of miniTramp class (801)
  • Add include for Elf_X in emitElf.h (790)
  • Clean up some includes (796)

Fixed bugs:

  • Fix memory leak in singleton_object_pool (835)
  • Fix power instruction decoding regression
  • Fix aarch64 instruction decoding regression
  • Fix memory leak in singleton_object_pool
  • Fix memory leak in SymEval::expandInsn (793)
  • Fix aliasing bug of Region::buffer on copy (791)
  • Cleanup memory handling when emitting Elf for static libraries (789)

10.2.0 (2020-07-30)

Full Changelog

Implemented enhancements:

  • Fix Variable location parsing (781)
  • Fix proccontrol hangs in test_thread_X (780)
  • proccontrol: Handle "ghost" threads (742)
  • Elf extended numbering (776)
  • Expand the list of non-returning functions in CodeSource.C. (748)
  • Memory leak fixes (758)
  • C++ cleanup (610)
  • Libxul fixes (755)
  • Potential fixes needed for relocating libraries (754)
  • Add compiler-specific search directories in getResolvedLibraryPath (732)
  • More parallel parsing optimization and fixes (729)
  • Add search of libgcc.a to x86 and aarch64 (731)
  • PIE/PIC aarch64 rewrite implementation (698)
  • Fixes for AbsRegion and jump table index slicing involving global variable (695)
  • Parallel DWARF parsing and improved parallel code parsing (651)
  • Allow same address range to map to different source lines in DWARF (643)
  • Parse dwarf variables with abstract origin attribute (642)
  • Fix instrumentation regressions for libc-2.29 on ARM (653)
  • Implement the check of ThreadDB at BPatch level (667)
  • Use static AArch64 decoder tables. (633)
  • Don't use software breakpoints when creating traps for springboards (637)
  • ARMv8 initial work on rewriter (612)

Fixed bugs:

  • Revert CUDA binaries openning to libdw (787)
  • Updates for #780 (783)
  • Improve detection of ghost threads (784)
  • Remove Aggregate::setModule declaration (779)
  • Remove examples (764)
  • Improve logging in PCEventHandler::handleThreadCreate (772)
  • Retain hint function from CodeSource even if we do not parse the code object. (768)
  • remove unnecessary assertion for unknown phdr_type (757)
  • Use register x30 (Link Register) to generate long branch (720)
  • Do not use non-trivial types in varargs (704)
  • Remove undefined behavior from Symtab::Type (706)
  • Update Examples in dataflowAPI (700)
  • Prevent corruption to rax during stack alignment on x86-64 (670)
  • Ignore additional Eclipse file and spurious .gitignore (681)
  • Add explicit ElfUtils dependency for ParseThat and examples (678)
  • Add $INSTALL/lib/elfutils subdirectory to build paths (680)
  • Allow sterile builds (641)
  • Reorder includes to fix hidden build dependencies (665)
  • Deprecate Blue Gene/Q support (662)
  • Delete duplicate friend declaration of Parser in Block (649)
  • Rename getType() -> getDataClass() in Section 8.1 of SymtabAPI docs (661)
  • Fix spelling of getTypedefType in Section 8.1 of SymtabAPI docs (660)
  • Update handling of TBB CMake file for clang (654)
  • Fix typo in declaration of 'create' in Section 8.3 (659)
  • Change dataTypeDefine -> DataTypedef in DataClass enum documentation (650)
  • Use CMAKE_xx_COMPILER when building external dependencies (636)
  • Allow CMake files for dependencies to be included multiple times (639)
  • Fix overlapping bug of program header segments on fixPhdr. (618)
  • Updates TLS descriptors values in .dynamic section (ARMv8, #614)
  • Use private writable mmap when opening binaries and debug files (624)
  • Convert snprintf with PRIx64 to std::to_string (627)
  • Use PRIx64 macros for long long results for i686. (517)
  • Delete .syntastic_cpp_config
  • Add note on TBB usage when built from source

10.1.0 (2019-05-15)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • InstructionAPI fails to decode some vector instructions on x86-64 #573
  • Make boost available after 'make install' #563
  • Assertion failure in LivenessAnalyzer::getLivenessIn(Dyninst::ParseAPI::Block*) #560
  • Homogenize cmake includes #557
  • Legacy test failures #550
  • Implicit ParseFunctionRanges is not thread-safe #360
  • GCC7 issues: new warnings, building with cotire causes GCC crash #321
  • [ARMv8 Decoding] SHA instruction should have 0s for bits 20 and 22 #264
  • [ARM Decoding] Some compare instructions should be invalid #251
  • [ARM Decoding] Reserved value for register shift field should create invalid insn #250
  • [ARM Syntax] Should print zero immediate for compares #237
  • [ARM Decoding] Compare instructions with zero ignore reserved bits #236
  • [ARM Decoding] SQSHL instruction has invalid bits set #235
  • [ARM Decoding] Invalid Subtract instruction #234
  • Update LibIberty to new build system #601 (hainest)
  • Update README to reflect new build system #597 (hainest)
  • TBB spack fixes #595 (hainest)
  • Fix BPatch_effectiveAddress on ppc where only low 32-bit address is extracted #593 (mxz297)
  • More fixes for parallel parsing, spring boards, and ARM #592 (mxz297)
  • Elfutils cleanup #591 (hainest)
  • TBB Cleanup #584 (hainest)
  • Boost cleanup #578 (hainest)
  • A few fixes for parallel parsing #572 (mxz297)
  • Fix bad interactions between patchAPI and parseAPI #564 (mxz297)
  • Elfutil version check #558 (hainest)
  • Add --enable-install-elfh when building elfutils from source #555 (hainest)
  • Attempts to fix legacy test failures in Dyninst test suite #549 (mxz297)

Closed issues:

  • Altering input operand of an instruction #590
  • BPatch_addressSpace replaceFunctionCall does not set R12 on Power #589
  • Trying to get a very simple PatchAPI example working #587
  • Cobwebs on the Documentation and boost 1.70.0 issues. #585
  • libboost_system.so.1.58.0: error adding symbols: DSO missing from command line #579
  • Symtab should not always demangle every function name #577
  • Springboards can trample function data due to incorrect range #551
  • lib/libdw.so.1 not copied on install #547
  • linking old system libelf when found #546
  • Spack Build Failed with errors about variable not declared in the scope #544
  • separate debuginfo failures #542
  • Any support for ARM32 and MIPS #538
  • After instrument with dyninst binary exports functions from libc #529
  • Dyninst errors when building with boost-1.69.0 #526
  • Bpatch_effectiveAddress truncates memory addresses to bottom 32 bits (PPC Only) #524
  • segfault #523
  • Abort in Dyninst 10.0.0 when trying to open file: libcublas.so.9.2.88 #508
  • Dyninst-10.0.0 boost::shared_ptr<Dyninst::InstructionAPI::Instruction> instead of Dyninst::InstructionAPI::Instruction #505
  • Dyninst-10.0.0 undeclared EM_AARCH64 #503
  • dyninst 10 hangs on ppcle at bpatch.processAttach #502
  • function return value destroyed when instrumented function access the input parameters at return statement only #501
  • 'repfunc' error #499
  • Mutator 'Aborted' when injecting BPatch_while #494
  • Segfault (nullptr deref) in getCalledFunction() #489
  • The return value at BPatch_exit points #391
  • Instrumenting indirect callsites and calltargets with labels #386
  • libelf install not copying libelf-0.168.so #375

Merged pull requests:

v10.0.0 (2018-11-09)

Full Changelog

Implemented enhancements:

  • Migrate Dyninst from libdwarf to libdw #328
  • Auto-detect Cilk #326
  • Make ParseAPI (optionally) multi-threaded #145

Fixed bugs:

  • Misc. x86 Decoding Issues #372
  • Segfault when singleton_object_pool reallocs #359
  • assert fails at insnCodeGen::generateBranchViaTrap #356
  • Incorrect function boundaries for functions sharing code #149

Closed issues:

  • Intel TBB install #500
  • Compilation Error #491
  • Build fails on Arch Linux #486
  • Power 8 Instrimentation stack frame generation destroys vector register values #484
  • Missing Vector Instructions and Reused Opcodes in Power 8 #483
  • Codegen gen.point() fails in most cases on Power (returns NULL) #482
  • Power support for code generation of long branch calls (i.e. branch with link to SPR) #481
  • relocation of branch +0x4 causes erratic behaviors on PowerPC #480
  • Handling Relocation of Power 8 Function Preamble #479
  • SymtabAPI dumps core when reading an exception table for a KNL (provided) binary #477
  • PCWidget::PCtoReturnAddr sets LR unnecessarily on non-x86 architectures #474
  • Spack Build Fails with missing dependency on libiberty #473
  • how to print the instruction which contains “cmp” #465
  • Instrumentation blocks not saving/restoring correct registers. #461
  • Segfault #456
  • InsertSnippet does not check if "when" parameter is legal #455
  • Heuristics to determined prologues #454
  • processCreate crashed on aarch64 #449
  • virtual bool AstCallNode::initRegisters(codeGen&): Assertion `callee' failed. Aborted (core dumped) #442
  • undefined reference to symbol '_ZNK7Dyninst14InstructionAPI11Instruction4sizeEv #440
  • cannot find -ldwarf? #439
  • xdrrec_create() type cast error: char* vs. void* #438
  • Error in build boost c++ library during installing Dyninst in Linux Ubuntu #435
  • dyninst not saving/restoring a register used in insertSnippet #434
  • Non-returning function analysis involving tail calls #433
  • Several problems for analyzing powerpc binarieson x86 #432
  • Patch without libdyninstAPI_RT.so #428
  • testsuite failures with separate debuginfo #423
  • make[2]: *** No rule to make target libiberty/libiberty.a', needed by common/libcommon.so.9.3.2'. Stop. #420
  • make failing in latest branch #419
  • Serious problem introduced when libdw was adopted #415
  • emitElf::createLoadableSections uses hard-coded sh_info #405
  • Memory corruption in ROSE memory pool allocator #400
  • ebx should be callee-saved #399
  • getFirstSymbol()->getMangledName SIGSEGV in PLT stub processing #396
  • disassembling issue #395
  • parseAPI shouldn't segfault if c++filt cannot demangle a symbol #390
  • The value of BPatch_registerExpr(BPatch_register reg) #388
  • Dyninst doesn't instrument the binary when it is compiled with -O3 flag (g++) #384
  • The address of instructions #380
  • Thunk call judgement condition #379
  • Is there any APIs that can be used for finding the indirect calls? #378
  • force boost build and force boost install #374
  • Compilation issue wrt to libdwarf an then zlib #373
  • CFG of stripped binary is empty #371
  • BPatch_statement::fileName() returns the empty string since somewhere between 9.2.0...9.3.0 #363
  • Power ABI v2 abstractions #119

Merged pull requests:

v9.3.2 (2017-04-17)

Full Changelog

Fixed bugs:

  • memcpy can fail with rewriter tests #355
  • dyninst does not build on i386 #343
  • [ARMv8 Decoding] SQ* instructions need to check bits with specific values #268
  • [ARMv8 Decoding] SMADDL and SMSUBL should have 32-bit register for operands 2 and 3 #266
  • [ARMv8 Decoding] SHL and SLI should have 0 for bit 11 #265
  • [ARMv8 Decoding] NEG instruction must have size = '11' #263
  • [ARMv8 Decoding] FMUL instruction cannot have size:q = '10' #262
  • [ARM Decoding] FMUL instructions cannot have 'size:L' == '11' #258
  • [ARM Decoding] Convert instruction immediate has reserved values (currently ignored) #257
  • [ARM Decoding] FCVTXN should be FCVTXN2 #255
  • [ARM Decoding] FCVT 'type' field cannot equal 'opc' field #254
  • [ARM Decoding] Reserved size value for some vector register instructions is ignored #249
  • [ARM Decoding] Stack pointer used where zero register should be #248
  • [ARM Decoding] Signed multiply instructions ignore size resitrictions #247
  • [ARM Decoding] Paired memory accesses must access aligned memory #245
  • [ARM Decoding] Convert instruction immediates appear incorrect at 64 #241
  • [ARM Decoding] Convert instruction immediate should not be larger than the register size #240
  • [ARM Syntax] Signed immediates should be shown as signed #239
  • [ARM Decoding] We should print the full operands of PRFUM #238
  • [ARM Decoding] Bad shift amounts. #233
  • [ARM Decoding] SIMD load instruction should be valid #223
  • [ARM Decoding] Decoding of MOVK instruction ignores restriction on combination of size and hw bits #222
  • [ARM Decoding] Decoding of ADDHN ignore reserved size bits #221
  • [ARM Syntax] Zero register should have sizing, either XZR or WZR #220
  • [ARM Decoding] Invalid CCMP and CCMN decoded as valid #219
  • [ARM Syntax] Shifted immediate for CCMP and CCMN #218
  • [ARM Syntax] Immediate out of range for LDRSB #217
  • [ARM Syntax] Repeated register number as constant #216

Merged pull requests:

v9.3.1 (2017-03-02)

Full Changelog

Fixed bugs:

  • Abort on PPC64LE when trying to get line number info #337
  • Seg Fault on PPC64LE during attach #336
  • Memory leaks in indirect control flow analysis #322
  • BPatch_binaryEdit::writeFile() fails for stack diversification #311
  • Stackwalk issue on arm64 #303
  • Decode returns null shared pointer #288
  • Operands labelled "[empty]" with operand type mismatch (all with 0x67 prefix) #203

Merged pull requests:

v9.3.0 (2016-12-22)

Full Changelog

Implemented enhancements:

  • Update build requirements: drop libelf.so.0 support #242
  • Merge AT&T syntax for x86 and ARM #210
  • Two options for opcode should print one, not both. #199
  • document proccontrol "tracking" APIs #151
  • Read access to SymtabAPI and ParseAPI should be thread-safe #144
  • New format for decoding tables #128
  • InstructionAPI disassembly should match AT&T syntax #4
  • x86 decoding and syntax fixes -- tentative #271 (jdetter)
  • findMain improvements #142 (jdetter)
  • Added asserts in liveness.C to prevent buffer underreads for #141 (jdetter)

Fixed bugs:

  • arm64 building current master fails #304
  • CMake boost error #300
  • arm64 pc_irpc test failure #296
  • arm64 pc_tls Library TLS was not the expected value #295
  • arm64 Problem with simple example code in the ProcControlAPI Programmer’s Guide #290
  • Stackanalysis asserts when analyzing __start_context in libc #283
  • test1_30 test failure #281
  • 'nullptr' not declared for GCC 4.4.7-17 compiler #278
  • Test4_4 seems to be in deadlock on amd64_ubu14 #274
  • Testsuite not building with branch att_syntax_formerge #272
  • AppVeyor having issues downloading boost #270
  • PGI line info regression #243
  • att_syntax not building after merge #230
  • VEX3 and EVEX assert - decoding invalid should throw exception or return error #213
  • Race conditions with transient threads #208
  • Dynist returns error "(bad)" decoding for valid sal variants. #207
  • No opcode suffix and no register operand creates ambiguous size. #204
  • Instructions produce FIXME opcodes, but otherwise appear correct #202
  • Invalid instructions produce FIXME opcodes #201
  • Invalid register numbers for VEX3 instructions #200
  • Opcode suffixes do not take into account prefix bytes #198
  • Incorrect operand suffix for register size for string instruction #197
  • Decode incorrect VEX3 as valid instruction #196
  • Decode incorrect VEX2 as valid instruction #195
  • Double printing first operand #193
  • findMain failing on master under Jenkins #188
  • Call emulation causing testsuite failures #187
  • PPC64 generateBranchViaTrap: Assertion `isCall == false' failed. #175
  • error: ‘class func_instance’ has no member named ‘freeStackMod’ #165
  • make install not working on latest master #160
  • Add generated cotire directories to gitignore #158
  • test_pt_ls failing on master (RHEL6) #157
  • Assertion failed with a bad DYNINSTAPI_RT_LIB #153
  • Assertion failure in DwarfWalker #152
  • Segfault when a process is attached without specifying exe #146
  • Indirect jumps that use jump tables are not relocated correctly #139
  • PC-relative read in indirect jump was not modified during relocation #133
  • stackanalysis assert while running in 32bit mode on master #131
  • Assert in StackAnalysis on release9.2/fixes/test_pt_ls #130
  • Cannot find malloc symbol in libc.so #126
  • test_pt_ls fails with Dyninst master #123
  • Line information fixes for HPCToolkit #122
  • Rewrite exception handlers to adjust for relocated code #121
  • Assertion failure during rewriting #116
  • Crash during liveness analysis #114
  • Segfault during traversal of slice generated in StackMod #113
  • Segfault when parsing binary with no functions #53
  • rewriter tests fail/crash on ppc64 #34
  • Warnings not being properly disabled under Visual Studio #26
  • Cleanup ppc (and old gcc) issues #277 (wrwilliams)
  • CMake fixes for Cotie and GCC 4.4 compatibility #164 (jdetter)
  • fix insnCodeGen::modifyData's 64-bit conversion #163 (cuviper)
  • Fixes for test_pt_ls #143 (jdetter)

Closed issues:

  • ABI changes from v9.2.0 to v9.2_patches #136

Merged pull requests:

v9.2.0 (2016-06-29)

Full Changelog

Implemented enhancements:

  • Dataflow documentation: Stack Analysis #31
  • Dataflow documentation: Slicing and SymEval #30
  • Dataflow documentation: Intro/Abstractions #29

Fixed bugs:

  • Rewriting with StackMods broken #111
  • Assertion during libxul PIE rewriting (VEX/master) #110
  • Testsuite failures on master/VEX for 32 bit platform #104
  • RHEL6 "cannot allocate memory in static TLS block" #101
  • Infinite recursion in TLS tramp guard #98
  • Rewritten binary dies with SIGILL #96
  • pc_fork_exec failure on master and VEX #94
  • Rewritten libc.so is not usable #93
  • dyninstAPI_RT build failure on Windows #92
  • amd64_7_arg_call passing, then segfaulting from shared pointer on VEX #90
  • Multiple testsuite failures on VEX #89
  • New instruction decoding problem in master branch #88
  • Build failure on windows #86
  • Dyninst parsing part of function multiple times #83
  • runTest -test pc_addlibrary fails/dumps core (actually, none of the proccontrol tests run) #81
  • Problems with Instruction API parsing x86-64 binaries: xhpl executable #80
  • Problems with Instruction API parsing x86-64 binaries: sqrtsd #79
  • parseThat not outputting executable binary (Exec format error) #71
  • symtabAPI fails to link on 32bit linux #70
  • Dyndwarf assert thrown on latest master #67
  • decodeOneOperand() called with unknown addressing method 18 #66
  • Segfault during PIE rewriting #65
  • walkSingleFrame run against local process on WIndows crashes #64
  • Symtab can't find any functions without libc #58
  • Rewriting of binaries with GNU_RELRO segment fails on master #52
  • Master timeout on test4_2 and test4_4 on Fedora23 #50
  • ERROR: failed bind/eval #48
  • Possible slicing/frame issue #44
  • dyninstAPI documentation typo #41
  • MachRegister::getReturnAddress not implemented on x86/x86_64 #40
  • Master not building with boost 1.58.0 (undefined references) #38
  • ptrace_peektext failing and producing spam in thread tests #36
  • Test 4_1, 4_2, and 4_4 fail on ppc64 #35
  • test1_33 fails on ppc64 #33
  • PLT entries misparsed on ARM #32
  • BPatch_function.C.o build failure on PPC64le #23
  • getABIVersion() not defined in Object-nt.h #21
  • Enable build only if .travis.yml is present option for repo #20
  • Bundling cvconst.h #17
  • Missing htobe32 function under Visual Studio #16
  • Line info gets misfiled into incorrect Modules #15
  • ./runTests -test test1_1 fails on ppc64 platform #8
  • LivenessAnalyzer::isMMX assertion failure #7
  • "Bad addressing mode!" in F23 libm.so #6
  • pc_tls fails #3
  • pc_add_library fails in attach mode on 9.2.x #2
  • test_mem_* fails on 9.2.x #1

Merged pull requests:

  • Disabled condition decoding in stack rewriting. #112 (jdetter)
  • symtabAPI: Apply corrections for the library_adjust page offset #109 (cuviper)
  • fix dll linkage on windows #108 (pefoley2)
  • Rewriter fixes, instruction decoding fixes. #107 (jdetter)
  • Don't use broken llvm apt mirror #105 (pefoley2)
  • Fixes for jump table, instruction decoding, windows proccontrol #102 (mxz297)
  • RTlib: use static TLS for the tramp guard #99 (cuviper)
  • Visual Studio Build Fixes #97 (pefoley2)
  • Refactor RTheap to avoid doing arithmetic with void* #95 (pefoley2)
  • Latest fix for rice folks #91 (mxz297)
  • Build fix for addrtranslate #87 (pefoley2)
  • Temporarily disable broken clang build #85 (pefoley2)
  • Simplify INTERP logic for better consistency #84 (cuviper)
  • Fix for square root floating point instructions #82 (jdetter)
  • Set defaults for Windows first-party stack walking: library tracker #78 (wrwilliams)
  • Define htobe on Windows/MSVC as a wrapper for _byteswap_ulong #77 (wrwilliams)
  • release9.2/bugs/rtheap_mmap_only #76 (wrwilliams)
  • Fix 32-bit build; rename emitElf64 to emitElf #73 (wrwilliams)
  • Truncate PTRACE_GETEVENTMSG exit status to int #69 (cuviper)
  • Fix Function/Module mapping #61 (wrwilliams)
  • Fix rewriting interp sections and debug symbols #57 (cuviper)
  • Fix uninitialized data in rewriter elf_update #54 (cuviper)
  • Merge 9.2 branch back to master #51 (wrwilliams)
  • fix#48 #49 (wrwilliams)
  • symtabAPI: don't free cuDIE in parseLineInfoForCU #47 (cuviper)
  • symtabAPI: comment out some debug chatter #46 (cuviper)
  • Remove low-level warnings from ptrace read/write failures #43 (cuviper)
  • Recover from a bad force push. #42 (wrwilliams)
  • Remove low-level warnings from ptrace read/write failures #39 (cuviper)
  • Fix #23, build failure on PPC64le #25 (pefoley2)
  • Provided base class virtual for getABIVersion() that returns false when not implemented #24 (mcfadden8)
  • Allow dyninst to be compiled using clang #13 (pefoley2)
  • Add initial file for travis #12 (pefoley2)
  • Misc fixes and improvements #11 (pefoley2)
  • ProcControl and Symtab support for ppc64le #10 (mcfadden8)

v9.1.0 (2015-12-16)

Full Changelog

v9.0.3 (2015-08-26)

Full Changelog

v9.0.2 (2015-08-24)

Full Changelog

v9.0.1 (2015-08-21)

Full Changelog

v9.0.0 (2015-08-20)

Full Changelog

milestone_5 (2015-01-15)

Full Changelog

milestone_4 (2015-01-14)

Full Changelog

milestone_3 (2015-01-12)

Full Changelog

v8.2.1 (2014-10-30)

Full Changelog

v8.2.0.1 (2014-08-19)

Full Changelog

v8.2.0 (2014-08-19)

Full Changelog

v8.1.2 (2013-06-18)

Full Changelog

pre8.1.2RC3 (2013-06-07)

Full Changelog

pre8.1.2RC2 (2013-06-04)

Full Changelog

pre8.1.2RC1 (2013-05-29)

Full Changelog

v8.1.1 (2013-03-14)

Full Changelog

pre-8.1RC1 (2013-03-01)

Full Changelog

pre-8.1 (2013-02-22)

Full Changelog

v8.0 (2012-11-19)

Full Changelog

SW8.0CrayRC3 (2012-10-15)

Full Changelog

SW8.0RC2 (2012-10-15)

Full Changelog

SW8.0RC1 (2012-10-15)

Full Changelog

kevin-final (2012-01-11)

Full Changelog

Release7_0 (2011-03-23)

Full Changelog

Release6_1 (2009-12-04)

Full Changelog

Release6_0 (2009-06-30)

Full Changelog

SanDiegoDistro (2007-11-21)

Full Changelog

Release5_1 (2007-05-31)

Full Changelog

release5_1_beta (2007-01-04)

Full Changelog

Release5_0 (2006-07-05)

Full Changelog

pre_multitramp (2005-07-19)

Full Changelog

Release4_2_1 (2005-04-12)

Full Changelog

mrnet-1_1 (2005-04-04)

Full Changelog

Release4_2 (2005-03-23)

Full Changelog

Dyninst4_1 (2004-04-28)

Full Changelog

mrnet-1-0 (2003-09-11)

Full Changelog

Before_PVM_Removal (2003-07-30)

Full Changelog

Dyninst4_0 (2003-05-30)

Full Changelog

snapshot_20020513 (2002-05-10)

Full Changelog

Dyninst3_0 (2002-01-17)

Full Changelog

Release3_2 (2001-03-14)

Full Changelog

Release3_1 (2000-08-24)

Full Changelog

Release3_0 (2000-05-16)

Full Changelog

Dyninst2_0 (2000-04-11)

Full Changelog

Release2_1 (1998-05-06)

Full Changelog

Release2_0 (1997-09-19)

Full Changelog

Release1_1 (1996-08-16)

Full Changelog

Release1_0 (1996-05-17)

Full Changelog

v0_0 (1993-09-03)

Full Changelog

* This Change Log was automatically generated by github_changelog_generator