【发布时间】:2014-02-10 14:33:10
【问题描述】:
将模块本地符号定义为静态(假设为 C)是一种很好的编程习惯。不幸的是,这会干扰对生成的对象/二进制文件的分析。例如,GNU ld 映射文件 (-Map=...) 不包含静态符号,因此遗漏了重要信息(例如,模块中有多少符号,定义的每个函数的大小等) .
有没有办法让 GNU ld 在映射文件中包含静态符号,而不修改原始源代码? (很明显,可以使静态修饰符有条件,但是在分析一堆 3rd 方项目时,这是一件很麻烦的事情。)
【问题讨论】:
-
发布此问题后不久,我还提交了一个 GNU ld 功能请求,此后一直无人关注:sourceware.org/bugzilla/show_bug.cgi?id=16566