[DynInst_API:] [dyninst/dyninst] a357ea: Deprecate Symtab::getOrCreateModule


Date: Tue, 07 Nov 2023 10:06:25 -0800
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] a357ea: Deprecate Symtab::getOrCreateModule
  Branch: refs/heads/thaines/deprecate_symtab_getOrCreateModule
  Home:   https://github.com/dyninst/dyninst
  Commit: a357eab3a20cae534d5640d1de506f68430e4dbc
      https://github.com/dyninst/dyninst/commit/a357eab3a20cae534d5640d1de506f68430e4dbc
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
    M symtabAPI/h/Symtab.h

  Log Message:
  -----------
  Deprecate Symtab::getOrCreateModule

There are several problems here:

1) Users shouldn't be creating modules

2) When created, the returned module must be "fixed up" before it's
useful. There's no need for that when one could be properly constructed
at the callsite inside Dyninst.

3) It violates the Single Responsibility Principle


  Commit: c5b8e6003eb8666bef658cd631e167b64dec9083
      https://github.com/dyninst/dyninst/commit/c5b8e6003eb8666bef658cd631e167b64dec9083
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

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

  Log Message:
  -----------
  Add Symtab::addModule

It's private, so can only be used by friends- specifically Object.


  Commit: 708b33f6764baf9957a53adaa3cc8d83c38d2b81
      https://github.com/dyninst/dyninst/commit/708b33f6764baf9957a53adaa3cc8d83c38d2b81
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  Use addModule throughout Symtab


  Commit: 72e7a07aa8f37baa4be0baf325bc43cac238295d
      https://github.com/dyninst/dyninst/commit/72e7a07aa8f37baa4be0baf325bc43cac238295d
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  Don't update mod_lookup_ in fixSymModules

The address ranges have already been inserted there by 'addModule'.


  Commit: 68979f25738f055fa2890c717e184064d5e5fd99
      https://github.com/dyninst/dyninst/commit/68979f25738f055fa2890c717e184064d5e5fd99
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M dyninstAPI/src/binaryEdit.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Use new check/add idiom for Modules in binaryEdit::writeFile


  Commit: 1e09fe57d55a60696bec02f7ca85db0bb70ade4f
      https://github.com/dyninst/dyninst/commit/1e09fe57d55a60696bec02f7ca85db0bb70ade4f
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

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

  Log Message:
  -----------
  Use new idiom in Object::fix_global_symbol_modules_static_dwarf


Compare: https://github.com/dyninst/dyninst/compare/a357eab3a20c%5E...1e09fe57d55a
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] a357ea: Deprecate Symtab::getOrCreateModule, Tim Haines <=