【问题标题】:How can I see symbols of (C and C++) binary on linux?如何在 Linux 上查看(C 和 C++)二进制符号?
【发布时间】:2026-02-01 23:00:01
【问题描述】:

你们都用什么工具? demangle c++ 符号如何能够将其传递给分析器工具,例如opannotate

谢谢

【问题讨论】:

    标签: c++ c performance profiling name-mangling


    【解决方案1】:

    使用nm 查看所有符号,使用c++filt 进行解码。

    例子:

    nm -an foo | c++filt
    

    【讨论】:

    • 除非二进制文件被剥离
    • 在剥离二进制文件的情况下,您可以随时尝试凝视水晶球。
    • -C|--demangle[=style] 应该处理 c++filt 的部分:nm -anC foo
    • @DanMoulding 如果是剥离的二进制文件,您可以使用readelf -Ws
    【解决方案2】:

    我使用的分析工具已经知道符号和源代码,since it is just the debugger。即使完全优化,我也可以构建包含符号的应用程序。

    【讨论】: