]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
gprofng: fix 32892 source line level information not available with "-g -O2"
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Mon, 19 May 2025 20:13:46 +0000 (13:13 -0700)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Thu, 22 May 2025 05:50:53 +0000 (22:50 -0700)
commit52d8dcccc0c4fff5c48145a4156338c1f5c19b3c
tree6b92c95e3daecefbe7f77acd16259592f299608d
parent575d205019105ad839fd5f93faf0f714ba640eec
gprofng: fix 32892 source line level information not available with "-g -O2"

gprofng did not read the .debug_rnglists section for dwarf-5.
Another problem was that gprofng ignored DW_AT_abstract_origin
As a result, gprofng skiped Dwarf for all functions declared as:
   <1><e18b>: Abbrev Number: 43 (DW_TAG_subprogram)
      <e18c>   DW_AT_abstract_origin: <0xe168>
      <e190>   DW_AT_linkage_name:  _ZN10Bool_ArrayD2Ev

gprofng/ChangeLog
2025-05-19  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

PR 32892
* src/Dwarf.cc: Read the .debug_rnglists section.
Support DW_AT_abstract_origin.
* src/Dwarf.h: Likewise.
* src/DwarfLib.cc: Likewise.
* src/DwarfLib.h: Likewise.
* src/LoadObject.cc (dump_functions): Print mangled names for aliases.
* src/Stabs.cc (fixSymtabAlias): Set 'alias' correctly.
* src/Symbol.cc (find_symbols): Add argument where to collect symbols.
* src/Symbol.h: Likewise.
gprofng/src/Dwarf.cc
gprofng/src/Dwarf.h
gprofng/src/DwarfLib.cc
gprofng/src/DwarfLib.h
gprofng/src/LoadObject.cc
gprofng/src/Stabs.cc
gprofng/src/Symbol.cc
gprofng/src/Symbol.h