Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
-g(或)clang 命令选项是否会--debug增加已编译应用程序的内存占用?具体来说,它会改变嵌入式 ARM 系统上加载的二进制大小吗?
-g
--debug
注意:我知道调试版本将符号表和更多调试信息添加到 ELF,但这应该由调试器使用,在主机上运行(例如,带有 Eclipse 的 PC)。问题是它是否会改变加载图像的大小。
该-g选项仅在二进制文件中添加调试信息,在未加载到内存的部分中。实际生成的代码和数据不受影响。
尝试objdump -h在 ELF 二进制文件的两个版本上运行。您将看到一些标有属性的部分,ALLOC而其他部分则没有。只有那些被标记ALLOC的才会在运行时加载或分配内存。您应该观察到这些部分在两个版本之间具有完全相同的大小;实际上,它们应该具有完全相同的内容,您可以根据需要进行objdump --full-contents验证diff。唯一的区别在于未标记的部分ALLOC;这些不会加载到内存中,并且在运行时无效。
objdump -h
ALLOC
objdump --full-contents
diff