Branch: refs/heads/kpp_amdgpu_instrument Home: https://github.com/dyninst/dyninst Commit: 2cf183c088a4ecd4eb4adf5542afbbede46e9b26 https://github.com/dyninst/dyninst/commit/2cf183c088a4ecd4eb4adf5542afbbede46e9b26 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024)
Changed paths: M dwarf/CMakeLists.txt M dwarf/h/dwarf_cu_info.h M dwarf/h/dwarf_names.h A dwarf/h/dwarf_unit_info.h Log Message: ----------- Create unique names for unnamed partial DWARF DIEs (#1558) * Refactor out is_*_unit functions from dwarf_cu_info.h * Give names to DW_TAG_partial_unit DIEs Commit: 8a3104dc67b2ec0bf0214dd2b51c9287f6cb2314 https://github.com/dyninst/dyninst/commit/8a3104dc67b2ec0bf0214dd2b51c9287f6cb2314 Author: kupsch <kup...@cs.wisc.edu> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M dyninstAPI/src/emit-x86.C Log Message: ----------- warning fix: improve logical-op handling (#1559) - use DYNINST_DIAGNOSTIC_BEGIN_SUPPRESS_LOGICAL_OP and END macros to suppress logical-op warning Commit: 53d4ae9e893bc773294b6342058fc6489d231992 https://github.com/dyninst/dyninst/commit/53d4ae9e893bc773294b6342058fc6489d231992 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M .github/workflows/dev-containers.yaml M .github/workflows/pr-tests.yaml A docker/Dockerfile.fedora Log Message: ----------- GithubCI: add testing on Fedora-39 (#1560) * Add Dockerfile to build Fedora * Add fedora-39 to PR tests (gcc only) The available libomp is for clang-17, but the highest installable version is clang-15. Seems like a bug. * Add fedora-39 to release containers Commit: a11c15732e36270314c1bf94dbc32b98f2840cf3 https://github.com/dyninst/dyninst/commit/a11c15732e36270314c1bf94dbc32b98f2840cf3 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/dwarfWalker.C M symtabAPI/src/dwarfWalker.h Log Message: ----------- Remove DwarfWalker::setModuleFromName (#1546) It's replaced with the updated Symtab::findModuleByOffset. Finding by name was always unnecessary as we know the offset of the current DIE. Commit: 33e198d70a624a77baabddddbd8643cb4dd9949f https://github.com/dyninst/dyninst/commit/33e198d70a624a77baabddddbd8643cb4dd9949f Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/h/Symtab.h M symtabAPI/src/Symtab-edit.C Log Message: ----------- Remove Symtab::changeSymbolOffset (#1567) It is never used. Not a breaking change as it's private. I have left the function of the same name in Aggregate because it's protected, there is a virtual dtor, and that class is accessible by users. It's possible that someone is using it. Commit: a135739fb40f987889fcdfadae34973ead36b6fe https://github.com/dyninst/dyninst/commit/a135739fb40f987889fcdfadae34973ead36b6fe Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/dwarfWalker.C Log Message: ----------- Clean up dead code in dwarfWalker.C (#1566) * Remove commented-out code It's just noise. * Remove useless comments Commit: 9c7e76cdbe40522c68b832684726a92cc27507a4 https://github.com/dyninst/dyninst/commit/9c7e76cdbe40522c68b832684726a92cc27507a4 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/Object-elf.C Log Message: ----------- Improve DWARF debugging in Object::fix_global_symbol_modules_static_dwarf (#1564) * Remove dead debug code * Add new debug tracing with dwarf_printf Commit: 21c79de9f1912fd862127ad899ff2755b315240c https://github.com/dyninst/dyninst/commit/21c79de9f1912fd862127ad899ff2755b315240c Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/dwarfWalker.C Log Message: ----------- Fix inline detection in findFuncName (#1563) Commit: 5ad3675325a708a03f301732059486a0cccf6f9f https://github.com/dyninst/dyninst/commit/5ad3675325a708a03f301732059486a0cccf6f9f Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/doc/API/Symtab/Module.tex M symtabAPI/h/Module.h Log Message: ----------- Remove Module::findFunctionsByName (#1562) This was added by c848409 in 2009, but never implemented. It looks like this was copy/pasted from the earliest Symtab rewrite. Commit: cb17dfc13896650b3fa7ff2b1901331644096707 https://github.com/dyninst/dyninst/commit/cb17dfc13896650b3fa7ff2b1901331644096707 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/doc/API/Symtab/Module.tex M symtabAPI/h/Module.h Log Message: ----------- Remove Module::findFunctionByEntryOffset (#1561) This was added by c848409ec in 2009, but never implemented. It looks like this was copy/pasted from the earliest Symtab rewrite. Commit: a7326a6b9f9225ccf682a03171adb58675c713fd https://github.com/dyninst/dyninst/commit/a7326a6b9f9225ccf682a03171adb58675c713fd Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/doc/3-Examples.tex M symtabAPI/doc/API/LineInfo/Iterating.tex M symtabAPI/doc/API/Symtab/Symtab.tex M symtabAPI/h/Symtab.h M symtabAPI/src/Symtab-lookup.C M symtabAPI/src/Symtab.C Log Message: ----------- Remove Symtab::findModuleByName(Module *&, std::string) (#1565) A Symtab::Module is a one-to-one mapping to a DWARF compilation unit (CU). In DWARF4, we consider a CU to be an entry in the .debug_info section with the tag DW_TAG_compile_unit. In DWARF5, we also include entries with the tag DW_TAG_partial_unit as they can contain symbol definitions; we assume libdw will merge all other split unit types for us. The name of a module is the DW_AT_name of the containing DIE. This is either the full path name of the source file used to create the CU or the relative path of the same with respect to the DW_AT_comp_dir. We ensure that the module's name is always an absolute path. Modules have never been required to have unique names. That is, many modules can share the same name. The following demonstrates this case: test.c ------ #ifdef FUNC1 void func1(){} #endif #ifdef FUNC2 void func2(){} #endif $ gcc -g -c -DFUNC1 -o func1.o test.c $ gcc -g -c -DFUNC2 -o func2.o test.c $ gcc -g -fPIC -shared func1.o func2.o -o libfunc.so $ readelf --debug-dump=info libfunc.so | grep -A 6 DW_TAG_compile_unit <0><c>: Abbrev Number: 1 (DW_TAG_compile_unit) <d> DW_AT_producer : <redacted> <11> DW_AT_language : 29 (C11) <12> DW_AT_name : test.c <16> DW_AT_comp_dir : /path/to/test <1a> DW_AT_low_pc : 0x10f9 <22> DW_AT_high_pc : 0x1104 <0><55>: Abbrev Number: 1 (DW_TAG_compile_unit) <56> DW_AT_producer : <redacted> <5a> DW_AT_language : 29 (C11) <5b> DW_AT_name : test.c <5f> DW_AT_comp_dir : /path/to/test <63> DW_AT_low_pc : 0x1104 <6b> DW_AT_high_pc : 0x110F Because the two CUs have the same name, Dyninst throws away the contents of the second one because this function would return the first. It is also possible (and likely) that the two CUs have different line maps and location lists. These, too, are discarded. Although unlikely, it is legal for a compiler to emit CUs with overlapping PC range values. This means the only way to uniquely identify a module is by its offset in the .debug_info section. Commit: f9e70ac7d987696e739d9c8c67a7c4f473dfcd0d https://github.com/dyninst/dyninst/commit/f9e70ac7d987696e739d9c8c67a7c4f473dfcd0d Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/Symtab.C Log Message: ----------- Refactor Symtab::getOrCreateModule (#1568) * Merge getOrCreateModule and newModule The latter was only ever called from the former. * Remove dead debug code * Do not adjust Module's address It's unclear why this was here. This function is currently called from only two places: BinaryEdit::writeFile and Object::fix_global_symbol_modules_static_dwarf. In the first, the module created is called 'dyninstInst'. This is the only place where that name is used, so only one module would be created. Moreover, 'writeFile' will only produce a single binary output, so there wouldn't be multiple modules. In the second, the module lookup will always fail because we are creating new ones for each DWARF compilation unit (CU), and those are guaranteed to be unique as we iterate over the results of 'dwarf_nextcu'. * Remove 'directory definitions' check This kind of name is never used manually anywhere in Dyninst and the names that come from DWARF compilation units (CUs) are never directories. * Clean up 'create' tracing message * Tidy up variable declarations. * Remove 'assert' after 'new'. We require exceptions to be enabled when building Dyninst and we aren't using the 'nothrow' version of 'operator new' here. This check is useless. * Remove existence check. This will never be true because 'findModuleByOffset' would have found the module. * Don't return with parens * Rename 'ret' to 'mod'. For clarity. Commit: 6a41f5f048bacd67e8be3262610498a10a048d64 https://github.com/dyninst/dyninst/commit/6a41f5f048bacd67e8be3262610498a10a048d64 Author: kupsch <kup...@cs.wisc.edu> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M common/h/compiler_annotations.h Log Message: ----------- fix gcc 6's broken __has_x_attribute (#1569) - gcc 6's __has_c_attribute and __has_cpp_attribute return true if an attribute is supported as a non-standard extension, but if used produces a warning if the language standard is earlier than the attribute's standardization; treat gcc 6 like clang and only allow if the language standard is after the introduction. - refactor the conditional compilation tests into common macros Commit: a49362868e2b3904162f31c3210a97cfc17cd48c https://github.com/dyninst/dyninst/commit/a49362868e2b3904162f31c3210a97cfc17cd48c Author: kupsch <kup...@cs.wisc.edu> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M common/h/compiler_diagnostics.h M symtabAPI/src/dwarfWalker.C Log Message: ----------- warning fix: false positive maybe uninitialized (#1570) gcc 12 reports a diagnostic for a maybe uninitialized value when boost::option::value_or is called on an optional that has no value, even though this is safe - add a diagnostic suppression macro for this warning and use it to suppress the warning Commit: 5f478bdf74290c122b9b759339a84a69c2b11855 https://github.com/dyninst/dyninst/commit/5f478bdf74290c122b9b759339a84a69c2b11855 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M dyninstAPI/src/image.C M symtabAPI/doc/API/Symtab/Symtab.tex M symtabAPI/h/Symtab.h M symtabAPI/src/Object-elf.C M symtabAPI/src/Symtab-lookup.C M symtabAPI/src/Symtab.C M symtabAPI/src/symtab_impl.hpp Log Message: ----------- Add Symtab::getContainingModule(Offset) (#1571) * Add Symtab::getContainingModule(Offset) Returns the module with PC ranges that contain a given offset (really address). In contrast, findModuleByOffset(Offset) finds a module starting at the given offset. Commit: e5573f006247229cc2c7bcd292af4feedf0688fc https://github.com/dyninst/dyninst/commit/e5573f006247229cc2c7bcd292af4feedf0688fc Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/src/Symtab.C Log Message: ----------- Use Symtab::getContainingModule instead of Symtab::findModuleByOffset (#1572) This should have been part of ddd2315b5. Commit: 19140792e070330d26732a48f2f64a851ba02db1 https://github.com/dyninst/dyninst/commit/19140792e070330d26732a48f2f64a851ba02db1 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M dyninstAPI/h/BPatch_statement.h M dyninstAPI/src/BPatch_statement.C M symtabAPI/CMakeLists.txt M symtabAPI/h/LineInformation.h M symtabAPI/h/Module.h M symtabAPI/h/RangeLookup.h A symtabAPI/h/Statement.h M symtabAPI/src/Module.C A symtabAPI/src/Statement.C Log Message: ----------- Refactor symtab/Module.h (#1573) * Move Statement class into its own header/source * Add missing include in RangeLookup.h * Remove redundant visibility specifier in Statement * Use in-class member initializers This removes the sign conversion. * Default the dtor * Whitespace Module.h This was just too terrible to leave alone. * Clean up includes in Module.h * Merge public sections Commit: 1e0e22af7bd30ee4830d2ce5d59c672f55565516 https://github.com/dyninst/dyninst/commit/1e0e22af7bd30ee4830d2ce5d59c672f55565516 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M dyninstAPI/h/BPatch.h M dyninstAPI/src/BPatch.C M dyninstAPI/src/mapped_module.C M dyninstAPI/src/mapped_module.h Log Message: ----------- Deprecate mapped_module::truncateLineFilenames (#1574) It's never used. Commit: 4fd92cb7a1598545f5a5ef28785f489f12173d97 https://github.com/dyninst/dyninst/commit/4fd92cb7a1598545f5a5ef28785f489f12173d97 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/h/Module.h M symtabAPI/src/Module.C M symtabAPI/src/Object-elf.C M symtabAPI/src/Object-elf.h M symtabAPI/src/Object.h Log Message: ----------- Remove DWARFisms from Symtab::Module (#1575) * Remove compilation directory from Module This is a concept specific to DWARF. These functions are not documented. * Remove DWARFisms from Symtab::Module There is no need to store the CU DIE from which a Module instance is derived. The address of the CU can be used to reconstitute the entry in the .debug_info section using dwarf_addrdie. Because Module.h is part of the public API for Dyninst, this also removes the transitive dependency on libdw. Commit: ed5f4e054f75b9b6d15391d6b32d0c26808a242e https://github.com/dyninst/dyninst/commit/ed5f4e054f75b9b6d15391d6b32d0c26808a242e Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/h/Module.h Log Message: ----------- Remove MODULE_ANNOTATABLE_CLASS (#1576) This is never used and Module doesn't inherit from AnnotatableSparse. Commit: 9aeb4638c5ff60accc879a9635684b1c89fb422c https://github.com/dyninst/dyninst/commit/9aeb4638c5ff60accc879a9635684b1c89fb422c Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/h/Module.h Log Message: ----------- Remove Module::findFunctionByEntryOffset (#1577) This was originally done in d2d48213a, but was accidentally reverted in 1c5f4966b. Commit: 2915f777ca2105ea01414293f9f29c3a070ba780 https://github.com/dyninst/dyninst/commit/2915f777ca2105ea01414293f9f29c3a070ba780 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M common/h/IBSTree-fast.h M symtabAPI/h/Aggregate.h M symtabAPI/h/Function.h Log Message: ----------- Reduce usage of concurrent.h (#1578) Commit: 2d254367fc8671efd3a7fe4acfafeb3a51fd1141 https://github.com/dyninst/dyninst/commit/2d254367fc8671efd3a7fe4acfafeb3a51fd1141 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M symtabAPI/doc/API/Symtab/Module.tex M symtabAPI/h/Module.h M symtabAPI/src/Module.C Log Message: ----------- Replace Module::getAllFunctions (#1579) The documented meaning did not match the implementation. This fixes that and breaks the interface so that users are forced to see the change rather than being surprised by it. It also makes it consistent with the other 'find' members like findSymbol and findLocalVariable. Commit: c3f2f662039bb4137b2e2e31b4d2103ea9e86303 https://github.com/dyninst/dyninst/commit/c3f2f662039bb4137b2e2e31b4d2103ea9e86303 Author: Tim Haines <thaines.as...@gmail.com> Date: 2024-02-12 (Mon, 12 Feb 2024) Changed paths: M dwarf/h/dwarf_cu_info.h M symtabAPI/src/Object-elf.C M symtabAPI/src/dwarfWalker.C Log Message: ----------- Fix naming of Modules with relative CU paths (#1580) * Use correct directory when adding source files * Use correct directory when creating a Module Compare: https://github.com/dyninst/dyninst/compare/5b56d12aa953...c3f2f662039b _______________________________________________ Dyninst-api mailing list Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api