gcc添加了哪些调试信息?

时间:2014-02-28 12:00:17

标签: linux debugging gcc

我正在使用eclipse中的autotools为运行OpenWRT的嵌入式系统构建程序。我把它全部设置为调试,这是有效的。如果我将已编译的可执行文件发送给某人,它是否会像未编译用于调试的那样高效?

1 个答案:

答案 0 :(得分:1)

生成的可执行文件的效率(对于相同的给定源代码)取决于编译器和优化标志。

如果仅使用gcc -g编译代码而不使用任何优化标志,则比使用优化标志(例如gcc -O2)编译它要慢得多。 / p>

如果需要,您可以同时混用-O2-g。添加-g不会减慢可执行文件的速度(但会添加一些调试信息)。调试这样的可执行文件时,gdb调试器可能会显示一些奇怪的行为(因为优化是内联,重新排序指令等等)。

您可能会发现使用gcc -O1 -g进行编译是一种恰当的折衷方案。最近的GCC(即4.8)甚至添加了-Og选项(优化调试),即使用gcc -Og -g进行编译。