[DynInst_API:] [dyninst/dyninst] 0b03a4: Add suppemental file flag to hash_map of types {ke...


Date: Mon, 01 Feb 2021 11:55:28 -0800
From: Sasha Nicolas <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 0b03a4: Add suppemental file flag to hash_map of types {ke...
  Branch: refs/heads/sasha/dwarf-redhat-issues
  Home:   https://github.com/dyninst/dyninst
  Commit: 0b03a47a9c17f18ac8e27cc1e6d9d040d6e1dc63
      https://github.com/dyninst/dyninst/commit/0b03a47a9c17f18ac8e27cc1e6d9d040d6e1dc63
  Author: Sasha (fedora33) <sasha@xxxxxxxxxxx>
  Date:   2021-01-20 (Wed, 20 Jan 2021)

  Changed paths:
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  Add suppemental file flag to hash_map of types {key->ID}, fix it on get_type_id()
In struct Context, switch Dwarf_Off to Dwarf_Die
Add case DW_TAG_imported_unit in parse()
Parse compile_unit and partial_unit in parseModule()
Remove DwarfWalker::findOffset()
Remove unnecessary first parameter of DwarfWalker::findDieName(), fix
all calls


  Commit: 121f55075d5a5cfe86b0a8d882e4988b293ec3c3
      https://github.com/dyninst/dyninst/commit/121f55075d5a5cfe86b0a8d882e4988b293ec3c3
  Author: Sasha (fedora33) <sasha@xxxxxxxxxxx>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M dwarf/h/dwarfExprParser.h
    M dwarf/src/dwarfExprParser.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/Type.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  Parse referenced type DIE while parsing a DIE:
Dyninst parses DIEs in a 'sequential' order. With the new supplemental dwarf
file (optimized with DWZ), the previous assumption that a type referenced by
a DIE will be in the same compile unit is now wrong. This lets Dyninst create
DIEs whose type reference is never parsed. The solution is to parse a type as
soon as Dyninst sees it, which essentially means parse when the first reference
is encountered.

Other fixes included:
Fix name of types struct, enum, and arrays with brackets.
Create new key (offset, file, module) to map type id.
Associate DIEs named <artificial> to defaultModule.
Remove redundant search on DwarfParseActions::setModuleFromName
Remove unused decode dwarf expression function.
Initialize SymtabError serr to SymtabError::No_Error


Compare: https://github.com/dyninst/dyninst/compare/f89ff36a7a8d...121f55075d5a
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 0b03a4: Add suppemental file flag to hash_map of types {ke..., Sasha Nicolas <=