Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 4039188c7808c49d79127ea37a5c7514b1ce0869
      
https://github.com/dyninst/dyninst/commit/4039188c7808c49d79127ea37a5c7514b1ce0869
  Author: Tim Haines <thaines.as...@gmail.com>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M dyninstAPI/src/binaryEdit.C
    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:
  -----------
  Deprecate Symtab::getOrCreateModule (#1623)

* 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

* Add Symtab::addModule

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

* Use addModule throughout Symtab

* Don't update mod_lookup_ in fixSymModules

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

* Use new check/add idiom for Modules in binaryEdit::writeFile

* Use new idiom in Object::fix_global_symbol_modules_static_dwarf


_______________________________________________
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to