上下文:
我正在为我的微控制器编写C ++代码,并且想知道每个类/函数/ stl对代码大小的贡献程度。要查看此信息,我在地图文件的.text部分中搜索。我也看到一些.objdump文件。我有点迷失在哪里开始。
问题:
PS:我也在从这样的链接学习编译过程 http://www.tenouk.com/ModuleW.html
谢谢
答案 0 :(得分:2)
映射文件由链接器生成,并且每个链接器的文件格式都不同。你最好的选择是链接器本身的文档 - 不太可能有一个“通用”教程。但是,大多数情况下,地图文件只是一个符号表,它们的位置和大小。通常会有静态数据和代码空间的内存使用情况的总体摘要。我不知道有什么可以“教”这样的。
某些链接器可以将其他信息放在映射文件中,例如每个函数的堆栈使用情况分析。关键值是main()和任何任务/线程和ISR入口点的值。
有些人还可能会生成交叉引用表或调用图,但大多数情况下,体面的IDE或代码导航或文档工具都会产生更多有用的结果。
您最好的选择可能是发布有关您正在使用的导致您遇到困难的地图文件特定部分的问题。