我有一个启用调试的二进制文件、与之静态链接的 .a 文件的集合,以及所有内容的源代码。
如何获得一个可解析的转储,其中列出了最终可执行二进制文件中的每个符号名称,以及它来自哪个 .a 和 .o?(如果可能,加上原始 .c/.cpp 文件。)
库中有一系列交叉依赖、循环依赖,甚至是几个定义的符号,我试图将它们映射出来,最终目标是重新创建构建系统。不知何故,旧的构建系统设法将所有东西连接在一起。(我认为更多的是偶然而不是设计......)
到目前为止,我已经尝试了各种调用,nm
但似乎无法获得这些数据。也许nm
是错误的工具。