gprofng: do not skip weak symbols

PR gprofng/33151

gprofng ignores functions that are compiled as weak symbols. This
heavily affects C++ class methods that are always compiled by g++
and clang++ as weak symbols. In this case 'gprofng display text'
just displays <static>@ADDRESS(<FILENAME>) instead of proper method
name.

The bug has been introduced in the commit 470a0288a8.
This commit is contained in:
Dmitrii Bordukov
2025-07-19 15:21:46 +03:00
committed by Vladimir Mezentsev
parent cf03713dd1
commit 00df7c126b

View File

@@ -1546,7 +1546,7 @@ Stabs::readSymSec (Elf *elf, bool is_dynamic)
switch (GELF_ST_TYPE (Sym.st_info))
{
case STT_FUNC:
if (Sym.st_size == 0 || ELF_ST_BIND (Sym.st_info) == STB_WEAK)
if (Sym.st_size == 0)
break;
if (Sym.st_shndx == 0)
{