C++ 什么';ARMCC(C+;+;)中(i.函数名)部分的含义是什么?

C++ 什么';ARMCC(C+;+;)中(i.函数名)部分的含义是什么?,c++,arm,inline,armcc,C++,Arm,Inline,Armcc,构建完成后,我在映射文件中找到了(I.函数名)部分 ====================================================== ex) [foo1.h]//内联函数定义和声明 __强制在线UINT32功能1(无效) { ... } [foo2.cpp]//使用了内联函数 #包括“foo1.h” UINT32功能2(无效) { ... func1();//编译时非内联 } [地图文件] foo2.o(.text)是指func1的foo2.o(i.func1) ==

构建完成后,我在映射文件中找到了(I.函数名)部分

======================================================

ex)

[foo1.h]//内联函数定义和声明

__强制在线UINT32功能1(无效) { ... }

[foo2.cpp]//使用了内联函数

#包括“foo1.h”

UINT32功能2(无效) { ... func1();//编译时非内联 }

[地图文件]

foo2.o(.text)是指func1的foo2.o(i.func1)

======================================================

映射文件中的典型部分如下所示:(.text),(.ARM.exidx),(.data),(.constdata),(.bss),(用户定义的部分名称)

经过几次构建测试后,我猜(I.function name)部分出现在定义内联但编译器未应用内联的函数在对象文件中生成区域符号以生成脱机版本时。这样的函数位于(i.函数名)部分。如果所有内联函数都是内联函数,则没有符号或(即函数名)节

为什么未内联应用的内联函数位于该节?(不是.text?)

(功能名称)部分的确切含义是什么

我查阅了以下文档,但无法得到有关内容的答案

  • ARM编译器用户指南、ARM编译器参考指南、ARM链接用户指南、ARMCC用户指南、ARM体系结构ELF

当包含标志
--split_sections
时,编译器将为每个函数生成一个节(),该标志是节
i.functionName
的指定名称

请注意,由于缺少与共享资源相关的潜在优化,此标志可能会增加代码的大小

另一方面,
inline
将(从):

如果需要,发出一个在翻译单元之间共享的函数,通常是将其放入所需的目标文件的公共部分

因此,两者在没有任何控制(或相互限制)的情况下一起,可能最终导致调用错误的段