0

我注意到我的输出中有未解组的函数,perf script并且最初认为perf可能做错了什么。
但是,更深入地研究一些*.so文件,我已经能够用c++filt -tnm -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.

我现在有点死胡同,所以任何关于我可能检查的建议都会非常感激。:)

4

1 回答 1

0

通过使用评论中建议的工具解决。

llvm-cxxfilt也可以使用,并且可能已经在某些机器上可用。

c++filt, nm, perf, 和objdump使用在作为 GCC 的一部分的 libiberty 中实现的功能。因此我在那里提交了一个错误报告:https ://gcc.gnu.org/bugzilla/show_bug.cgi?id=102851

于 2021-10-20T06:29:35.663 回答