6.6 优化和调试

GCC可以使优化和调试选项’-g’配合使用。大多数其他编译器不允许这样做。

当将调试和优化一起使用时优化器会重新排布程序指令,这会使优化过的程序在调试器中难以跟踪程序运行情况。例如临时变量经常会被删除,函数、变量声明的顺序会被改变。

然而当程序执行异常时任何调试信息都是有用的--所以推荐在开发和发布的优化程序中使用’-g’选项。在发布GNU包时默认使能调试选项’-g’和优化选项’-O2’。