【问题标题】:Include static symbols in GNU ld map file?在 GNU ld 映射文件中包含静态符号?
【发布时间】:2014-02-10 14:33:10
【问题描述】:

将模块本地符号定义为静态(假设为 C)是一种很好的编程习惯。不幸的是,这会干扰对生成的对象/二进制文件的分析。例如,GNU ld 映射文件 (-Map=...) 不包含静态符号,因此遗漏了重要信息(例如,模块中有多少符号,定义的每个函数的大小等) .

有没有办法让 GNU ld 在映射文件中包含静态符号,而不修改原始源代码? (很明显,可以使静态修饰符有条件,但是在分析一堆 3rd 方项目时,这是一件很麻烦的事情。)

【问题讨论】:

标签: c map static linker ld


【解决方案1】:

虽然链接器映射文件和nm 不包含没有外部链接的符号,但objdump 包含(只要调试信息可用)。您需要-t 选项。

this related answer

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多