【发布时间】:2021-12-04 11:19:54
【问题描述】:
我在perf script 的输出中发现了未分解的函数,最初认为perf 可能做错了什么。
但是,深入研究一些*.so 文件,我已经能够重现c++filt -t、nm -C 和objdump -D -C 的问题。
我有点迷失在去错过程中可能出了什么问题。
没有被破坏的符号之一是:
_ZZNK5Gaudi10Functional7details16MultiTransformerIFSt5tupleIJSt6vectorIN4LHCb14VPLightClusterESaIS6_EESt5arrayIjLm53EEEERK12EventContextRKNS5_8RawEventERK4DeVPENS0_6Traits4use_IJNS5_7DetDesc21useConditionHandleForIJSI_EEENSM_11BaseClass_tINSO_23ConditionAccessorHolderI10FixTESPathINS_9AlgorithmEEEEEEEEELb0EE7executeESE_ENKUlDpRT_E_clIJK21DataObjectWriteHandleIS8_S8_EKS15_ISA_SA_EEEEDaS12_
该库是使用 GCC 10.1 编译的。但是如果我用 clang 11 编译,我可以在objdump -D -C 中找到相同的符号。
我现在有点走投无路,所以任何关于我可以检查的建议都将非常感激。 :)
【问题讨论】:
-
错误/过时版本。试试github.com/nico/demumble
-
感谢@n.1.8e9-where's-my-sharem。 !那个有效:)
标签: c++ objdump name-mangling nm c++filt