c-g(或--debug)命令选项是否会增加加载的内存占用



-g(或--debug(clang命令选项是否会增加已编译应用程序的内存占用?具体来说,它会改变嵌入式ARM系统上加载的二进制大小吗?

注意:我知道调试构建向ELF添加了符号表和一些更多的调试信息,但这应该由在主机上运行的调试器使用(比如,带有Eclipse的PC(。问题是它是否会更改加载的图像的大小。

-g选项仅在二进制文件中添加调试信息,这些信息位于而非加载到内存中的部分中。实际生成的代码和数据不受影响。

请尝试在两个版本的ELF二进制文件上运行objdump -h。您将看到一些部分标记有属性ALLOC,而其他部分则没有。只有那些标记为ALLOC的才在运行时加载或分配内存。您应该注意到,在两个版本之间,这些部分的大小完全相同;实际上,它们应该具有完全相同的内容,如果您愿意,可以使用objdump --full-contentsdiff进行验证。唯一的区别在于没有标记为ALLOC的部分;这些不会加载到内存中,并且在运行时没有任何效果。

最新更新