[DynInst_API:] [dyninst/dyninst] 2a49c8: make symbol name demangling consistent (#872, #717)


Date: Tue, 29 Sep 2020 07:46:09 -0700
From: kupsch <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 2a49c8: make symbol name demangling consistent (#872, #717)
  Branch: refs/heads/demangle
  Home:   https://github.com/dyninst/dyninst
  Commit: 2a49c857a3ef810ba4f57512299d2f068f04e71d
      https://github.com/dyninst/dyninst/commit/2a49c857a3ef810ba4f57512299d2f068f04e71d
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M cmake/LibIberty.cmake
    M common/CMakeLists.txt
    M common/src/freebsdKludges.C
    M common/src/linuxKludges.C
    A common/src/symbolDemangle.c
    A common/src/symbolDemangle.h
    A common/src/symbolDemangleWithCache.C
    A common/src/symbolDemangleWithCache.h
    M symtabAPI/doc/4-Definitions.tex
    M symtabAPI/h/Symtab.h
    M symtabAPI/src/Aggregate.C
    M symtabAPI/src/Symbol.C
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab.C

  Log Message:
  -----------
  make symbol name demangling consistent (#872, #717)

* make all pretty and typed names consistent on linux and freebsd
* use libiberty's cplus_demangle to generate pretty and typed names
  from the mangled names instead of abi::__cxa_demangle to get the
  typed name and parsing the result to get the pretty name
* use common function symbolDemangle to implement both pretty and typed
  names using cplus_demangle and removing suffixes (versioning and
  stabs), and add function cloning suffixes back to the pretty name
  so it is consistent with the mangled and types names.
* added a last result caching version of symbolDemangle,
  symbolDemangleWithCache used by P_cplus_demangle (matches current
  behavior)
* update SymtabAPI documentation improve the definitions of mangled,
  pretty and typed name for correctness and to match current behavior
* removed demangleSymbol and demangleSymbols methods and their uses
  as the functions had no effect
* remove non-windows suffix removal in Symbol class as it is now
  performed in one place


[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 2a49c8: make symbol name demangling consistent (#872, #717), kupsch <=