13.0.0 (2024-02-28)
- 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)
- 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)
- 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)
- 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)
- 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)
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)
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
-
- 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)
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)
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)
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)
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)
Implemented enhancements:
- Unset library variables when building elfutils from source #561
- Update LibIberty to new build system #601 (hainest)
- ARM effective address calculation #594 (mxz297)
- Elfutils cleanup #591 (hainest)
- TBB Cleanup #584 (hainest)
- Boost cleanup #578 (hainest)
- Add initial support for decoding AMD FMA4 and XOP instructions #575 (mxz297)
- Convert ThreadDB error message to info message #574 (hainest)
- Fix compilation of thread_db_process #571 (sashanicolas)
- Fixing TBB dependencies during build. #570 (sashanicolas)
- Support parsing cubin in dyninst-10.0 #556 (Jokeren)
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:
- Compilation fix for boost 1.70 #600 (mxz297)
- Bump minimum CMake version to 3.4.0 #598 (hainest)
- Fix DwarfFrameParser, decodeDwarfExpression and DwarfResult #596 (sashanicolas)
- simple working hybrid example of patchAPI #588 (ianamason)
- Remove assertions for jump table analysis #576 (mxz297)
- Should set errno to zero before calling ptrace #569 (mxz297)
- Implement ARMv8 IMFC and Load/Store Shared #562 (LER0ever)
- Fix ARM stack walking #559 (mxz297)
- Fix tests in PIC mode #553 (mxz297)
- Do not put newly added functions to .dynsym, which may cause the load #548 (mxz297)
- Ppcle rhel8 fix #543 (mxz297)
- Add some explicit casts from boost::tribool to bool for some code in #541 (mwkrentel)
- Ignore Eclipse settings files and folders #539 (hainest)
- Remove Travis and AppVeyor CI #537 (hainest)
- Remove undefined behavior from bit-shifting code #536 (hainest)
- fix missing installation of libdw when installing elfutils #531 (rafzi)
- Adjust Dyninst to support injecting CFGs for CUBINs #530 (Jokeren)
- Ppc pc fix #528 (mxz297)
- Fix several bugs in common/src/pathName.C #527 (hainest)
- Power abi v2 fixes #519 (mxz297)
- Don't use system header <> syntax for dyninst includes #518 (stanfordcox)
- Fix linemaps for CUBINs #516 (jmellorcrummey)
- as needed, add -fopenmp flag when linking executables #513 (jmellorcrummey)
- Fix whileExpr not generating the correct code and causing abort #510 (LER0ever)
- Fixes signed/unsigned operations for comparison, multiplication, #509 (mxz297)
- Add .dir suffix to examples/{codeCoverage,unstrip} #507 (stanfordcox)
- Install docs into target doc dirs #506 (stanfordcox)
v10.0.0 (2018-11-09)
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:
- Vector instruction support on Power and recycled opcode #498 (mxz297)
- Build fixes for parallel building and xdr-related issues #496 (LER0ever)
- Merge parallel code parsing #488 (mxz297)
- Power8 instrumentation fix #485 (mxz297)
- symtab: fix memory error in Statement::getFile #469 (rafzi)
- Vector categories merge into master #463 (jgalarowicz)
- Fix for crashing on relocating at unistrumentable points #460 (bwelton)
- New walker to walk out of Instrimentation Frames FP #452 (bwelton)
- Fixes for testsuite failures on powerv7 and block boundary aligning for overlapping instructions #446 (mxz297)
- Remove unused rpc/xdr references. #445 (stanfordcox)
- Very minor clean-up a particualrly ugly piece of code. #441 (thomasdullien)
- Fixes for non-returning functions, endianness for cross architecture parsing, and powerpc instruction decoding #437 (mxz297)
- add missing initialization for flags when Elf_X is a memory image #430 (jmellorcrummey)
- Fix sh_info for VERNEED section #427 (nedwill)
- Bugfixes windows #418 (mitalirawat)
- AArch32 ARM Parsing Support #417 (rchyena)
- Parallel Parsing changes #416 (jmellorcrummey)
- Add linux-vdso64.so.1 to the library blacklist. #414 (stanfordcox)
- Handle R_X86_64_IRELATIVE relocation. #413 (stanfordcox)
- Add basic support for EM_CUDA binary type #410 (jmellorcrummey)
- Fix the crash issue of retee #408 (mxz297)
- fix dwarf symbol frame #403 (sashanicolas)
- Merging my jump table improvements, att_syntax, and arm semantics #401 (mxz297)
- Fixing the destruction of objects under process control api. #382 (sashanicolas)
- Add FORCE_BOOST CMake option for @lee218llnl #381 (wrwilliams)
- fix a bug when generating relocation index #370 (fengharry)
- Clean up and refactor reaching definitions for better readability #369 (morehouse)
- Sfm/fixes/indirection fixes #368 (morehouse)
- Pull request for arm64/feature/relocation into master #367 (ssunny7)
- Pull request for att_syntax into master #366 (ssunny7)
- Prevent non-PIC thunks from being classified as such #365 (morehouse)
- Sfm/feature/reaching defs #364 (morehouse)
v9.3.2 (2017-04-17)
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:
- More 9.3.2 cleanup #362 (wrwilliams)
- Final cleanup bits for 9.3.2 #361 (wrwilliams)
- Support 32-bit builds in Jenkins #350 (cuviper)
- CMake fixup #349 (wrwilliams)
- Add a macro MSROp #348 (ikitayama)
- Fix up exception handling code so that we only consider call instructions for exception sensitivity and its attendant emulation #347 (wrwilliams)
- Refactor BPatch_type so it always has a reference to its underlying symtab type. #346 (wrwilliams)
- v9.3.x #341 (wrwilliams)
v9.3.1 (2017-03-02)
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:
- Replaced a bunch of asserts with graceful error handling. #340 (wrwilliams)
- Fix jump table analysis for lulesh #338 (mxz297)
- Better handling of anonymous structs and unions #335 (wrwilliams)
- Fix memory leaks found with lsan #333 (wrwilliams)
- Suppress debug message when no vsyscall page was found on arm64 #332 (wrwilliams)
- Use ifdef to guard x86 code #331 (wrwilliams)
- Fix memory leaks in indirect control flow. #329 (wrwilliams)
- Fixes for API and dependency issues in 9.3.0 #323 (wrwilliams)
- Changing the URL of libelf to download elfutil. #318 (sashanicolas)
- Displacement validation checks updated #314 (jdetter)
- Release9.3/fixes/icc binaries #310 (mxz297)
- Fix test_basic test error #309 (ikitayama)
- Make dyninst compile on x64 windows #168 (pefoley2)
v9.3.0 (2016-12-22)
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:
- ARM64 fixes for stack walking #307 (wrwilliams)
- Update AssignmentConverter instantiation to make use of stack analysis explicit. #306 (wrwilliams)
- Bug fix for PR#294 #302 (wrwilliams)
- Enhance DWARF parser to recognize (and skip) DW_TAG_member entries for static fields #299 (ma-neumann)
- Fix omitting leading 0's when concatenating hex bytes in stringstream #298 (ma-neumann)
- More manual fixes #297 (mxz297)
- arm64: remove syscall tracing workaround #294 (ikitayama)
- Autodetect RTLib location #293 (wrwilliams)
- Small fixes #292 (wrwilliams)
- Update manual version numbers and minor fixes #291 (mxz297)
- Remove stackanalysis assertions #289 (wrwilliams)
- Line info cleanup #287 (wrwilliams)
- Passing test_pt_ls (at least on RHEL7) #286 (mxz297)
- Sfm/fixes/untouched blocks #285 (morehouse)
- Use in-place translation #284 (wrwilliams)
- common: use ptrace if yama blocked process_vm_readv/writev #280 (cuviper)
- Fix dependency of LibDwarf #279 (rafzi)
- Compiling DynInst v9.2.0 on arm64 #273 (ikitayama)
- proccontrol: fix double-increment while erasing a dead process #261 (cuviper)
- Document some of the ProcControlAPI options in PlatFeatures.h. #260 (morehouse)
- proccontrol: scrub newly created threads that fail to attach #259 (cuviper)
- RT: trymmap should retry if the result is out of range #231 (cuviper)
- Merge ARM instruction semantics and jump table parsing #228 (mxz297)
- line info bugfixes #226 (wrwilliams)
- LibraryTracker documentation #225 (wrwilliams)
- proccontrol: Synchronize additional threads found during attach #214 (cuviper)
- Fix errors when thread disappears during attach #212 (cuviper)
- Added symbol linkage support for GNU unique linkage types #209 (bwelton)
- Fix icc warning flags #206 (pefoley2)
- Make dynC work on windows #205 (pefoley2)
- pefoley2-boost_win #194 (wrwilliams)
- ElfX: add xlate funcs #192 (wrwilliams)
- proccontrol: check thread handle before calculating TLS #191 (cuviper)
- Improved the findMain analysis significantly #189 (jdetter)
- Exception frame rewriting fixes #186 (jdetter)
- String table now includes an entry at zero for "unknown", so don't subtract from the DWARF file number. #185 (wrwilliams)
- cmake: Fix not building when libiberty is automatically installed #183 (rafzi)
- Determine the architecture of an ELF by looking at the file header in… #182 (rafzi)
- Documentation updates -- tentative #180 (jdetter)
- Fix operand types for vpand #177 (BlairArchibald)
- symtabAPI: dont expect a data segment in elf; eliminate dead code #173 (rafzi)
- elf: fix uninitialized isBigEndian for archives; duplicate code removal #172 (rafzi)
- Support building with LTO #171 (pefoley2)
- Fix various warnings under Visual Studio #169 (pefoley2)
- Guard StackMod implementation from non-x86 architectures. #166 (morehouse)
- Added generated cotire directories to gitignore #159 (jdetter)
- symtabAPI: use the known type for new relocations #156 (cuviper)
- Sfm/feature/interproc analysis #155 (morehouse)
- Remove unnecessary assert from dwarfWalker. Fixes #152. #154 (morehouse)
- proccontrol: fix process attachment without an exe #148 (cuviper)
- proccontrol: fix process attachment without an exe #147 (cuviper)
- Restored dyn_regs.h to v9.2.0 version #140 (jdetter)
- Fixes significant ABI issues on v9.2_patches. #138 (jdetter)
- Line info optimizations #135 (wrwilliams)
- Matt's patch applied -- fixes test_stack_1 issue #134 (jdetter)
- Rose build fixes #129 (pefoley2)
- Merge arm64/feature/semantics_setup into master #127 (ssunny7)
- V9.2 patches #124 (jdetter)
- Release9.2/fixes/liveness patch #118 (jdetter)
- Add config to build using Appveyor #19 (pefoley2)
- Fix warnings produced when compiling with clang #14 (pefoley2)
v9.2.0 (2016-06-29)
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)
v9.0.3 (2015-08-26)
v9.0.2 (2015-08-24)
v9.0.1 (2015-08-21)
v9.0.0 (2015-08-20)
milestone_5 (2015-01-15)
milestone_4 (2015-01-14)
milestone_3 (2015-01-12)
v8.2.1 (2014-10-30)
v8.2.0.1 (2014-08-19)
v8.2.0 (2014-08-19)
v8.1.2 (2013-06-18)
pre8.1.2RC3 (2013-06-07)
pre8.1.2RC2 (2013-06-04)
pre8.1.2RC1 (2013-05-29)
v8.1.1 (2013-03-14)
pre-8.1RC1 (2013-03-01)
pre-8.1 (2013-02-22)
v8.0 (2012-11-19)
SW8.0CrayRC3 (2012-10-15)
SW8.0RC2 (2012-10-15)
SW8.0RC1 (2012-10-15)
kevin-final (2012-01-11)
Release7_0 (2011-03-23)
Release6_1 (2009-12-04)
Release6_0 (2009-06-30)
SanDiegoDistro (2007-11-21)
Release5_1 (2007-05-31)
release5_1_beta (2007-01-04)
Release5_0 (2006-07-05)
pre_multitramp (2005-07-19)
Release4_2_1 (2005-04-12)
mrnet-1_1 (2005-04-04)
Release4_2 (2005-03-23)
Dyninst4_1 (2004-04-28)
mrnet-1-0 (2003-09-11)
Before_PVM_Removal (2003-07-30)
Dyninst4_0 (2003-05-30)
snapshot_20020513 (2002-05-10)
Dyninst3_0 (2002-01-17)
Release3_2 (2001-03-14)
Release3_1 (2000-08-24)
Release3_0 (2000-05-16)
Dyninst2_0 (2000-04-11)
Release2_1 (1998-05-06)
Release2_0 (1997-09-19)
Release1_1 (1996-08-16)
Release1_0 (1996-05-17)
v0_0 (1993-09-03)
* This Change Log was automatically generated by github_changelog_generator