-g(或) clang 命令选项是否会--debug增加已编译应用程序的内存占用量?具体来说,它是否会改变嵌入式 ARM 系统上加载的二进制大小?
注意:我知道调试版本向 ELF 添加了符号表和更多调试信息,但这应该由运行在主机(例如,带有 Eclipse 的 PC)上的调试器使用。问题是它是否会改变加载图像的大小。
该-g选项仅在二进制文件中未加载到内存的部分中添加调试信息。实际生成的代码和数据不受影响。
尝试objdump -h在两个版本的 ELF 二进制文件上运行。您将看到一些部分标有属性ALLOC,而其他部分则没有。只有那些被标记的ALLOC才会在运行时加载或分配内存。您应该观察到,两个版本之间这些部分的大小完全相同;事实上,它们应该具有完全相同的内容,如果您愿意objdump --full-contents,您可以验证diff这些内容。唯一的区别在于未标记的部分ALLOC;这些不会加载到内存中,并且在运行时没有任何作用。